UIViewの下の2つのコーナーを丸めて、レイヤーのボーダーも丸く表示しています。私は現在やっています: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
の層がそのborderColor
とborderWidth
セットを持って、そしてあなたがスクリーンショットから見ることができるように、層の境界線が丸みを帯びて取得されていません。
は、私はまたのUIViewをサブクラス化し、+[Class layerClass]
から[CAShapeLayer layer]
帰国しようとしました、ビューのレイヤーをという形のレイヤーに設定しましたが、境界線がビューのサブビューの下になりました。
ビューのコーナーの一部を丸めたり、ビューのレイヤーの境界線を丸めたり、レイヤーの境界線の下にあるサブビューをクリップすることはできますか?
ではなく、一部のコーナーを丸める方法についてはであることに注意してください。ストロークを正しく動作させる方法
は、層の階層にストロークさシェイプレイヤーを追加しますか? –
良い提案ですが、私はそれをテストし、シェイプレイヤのストロークはまだビューのサブビューの後ろに表示されます。 –
実際、あなたのコメントは私に正しい道で考えさせてくれました。そして、私はそれを手に入れました。私は答えとして投稿します。ありがとう! –