Я пытаюсь обойти нижние два угла UIView, а также, чтобы границы слоев были округлены. Я сейчас делаю:
UIRectCorners corners = UIRectCornerBottomLeft | UIRectCornerBottomRight;
CGSize radii = CGSizeMake(kThisViewCornerRadius, kThisViewCornerRadius);
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:myView.bounds
byRoundingCorners:corners
cornerRadii:radii];
CAShapeLayer *maskLayer = [CAShapeLayer layer];
[maskLayer setPath:path.CGPath];
myView.layer.mask = maskLayer;
Это нормально для обычных представлений. Однако, уровень myView
s имеет свои настройки borderColor
и borderWidth
, и, как вы можете видеть на скриншоте, граница слоев не округляется:
Я также попробовал подклассифицировать UIView и вернуть [CAShapeLayer layer]
из +[Class layerClass]
и настроить слой views как слой формы, но граница оказалась ниже подзонов views.
Можно ли закруглить некоторые из углов вида, вокруг границы слоев вида и скопировать подзоны под границей слоев?
Обратите внимание, что речь идет не о том, как обходить несколько углов, а не о других, а о том, как заставить ход правильно вести себя.