Я пытаюсь создать маску слоя для UIView, которая будет выступать в качестве выдвижной панели. Для этого мне нужен закругленный нижний правый угол со вставкой около 50 пикселей. До сих пор мне удавалось добиться этого эффекта, создав xib UIView с четким цветом фона и еще один меньший UIView (подпредставление) поверх него со вставкой 50 пикселей снизу и справа. Я хотел бы добиться этого эффекта без использования меньшего подпредставления. Другими словами, создайте маску со вставкой на 50 пикселей снизу и справа с закругленным углом в правом нижнем углу.
Теперь, когда я рисую маску на подвиде, она работает в любой ориентации экрана, в которой я начинаю, но когда устройство поворачивается, я получаю действительно противоречивые результаты. В моем классе subview у меня есть следующий код:
- (void)drawRect:(CGRect)rect
{
CAShapeLayer *maskLayer = [CAShapeLayer layer];
CGPathRef path = [[UIBezierPath bezierPathWithRoundedRect:[_subView bounds]
byRoundingCorners:UIRectCornerBottomRight
cornerRadii:(CGSize){150.0, 150.0}] CGPath];
[maskLayer setPath:path];
[_subView.layer setMask:maskLayer];
CGPathRelease(path);
}
Я не уверен, в чем проблема, но похоже, что с этим было бы легче справиться, если бы я мог добиться этого эффекта, используя один UIView с маской. Ниже приведен снимок экрана с подвидом. Очевидно, я немного новичок в технике маскировки.
Серый узор, показанный на изображении, - это главный контроллер представления с UIView из xib наверху. Прозрачность достигается за счет настройки основного вида xib на чистый цвет фона.
РЕДАКТИРОВАТЬ Вот вид при открытии в альбомной ориентации. Я установил белый фон UIView, чтобы показать, что это вспомогательное представление не отображается должным образом при повороте устройства.
А при повороте получается вот такой результат:
Как уже упоминалось, поскольку основное представление отрисовывается правильно, кажется, что лучшим подходом было бы создать маску, которая дает аналогичный эффект, хотя не уверен, поэтому я здесь!
Надеюсь, я был достаточно ясен. Может кто-нибудь помочь с этим? Спасибо!