UIView の下の 2 つの角を丸くしようとしていますが、レイヤーの境界線も丸く表示されます。私は現在やっています:
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
のレイヤーにはborderColor
andborderWidth
が設定されており、スクリーンショットからわかるように、レイヤーの境界線は丸くなっていません。
また、UIView をサブクラス化して[CAShapeLayer layer]
から戻り、ビューのレイヤーを+[Class layerClass]
シェイプ レイヤーとして設定しようとしましたが、境界線がビューのサブビューの下になってしまいました。
ビューの角を丸くしたり、ビューのレイヤーの境界を丸めたり、サブビューをレイヤーの境界の下にクリップしたりすることはできますか?
これは、いくつかの角を丸くする方法と他の角を丸くする方法ではなく、ストロークを正しく動作させる方法に関するものであることに注意してください。