1
を使用してのUIViewの上部にコーナー半径を適用する方法:特定コーナーにコーナー半径を適用する)(Iラウンドを追加する<code>UIView</code>を拡張オートレイアウト
:私は、次の階層を持っている1つのビューコントローラでextension UIView {
func round(corners: UIRectCorner, radius: CGFloat) -> CAShapeLayer {
let path = UIBezierPath(roundedRect: bounds, byRoundingCorners: corners, cornerRadii: CGSizeMake(radius, radius))
let mask = CAShapeLayer()
mask.path = path.CGPath
self.layer.mask = mask
return mask
}
}
- StackView
- のUIView
012 0.
私の問題は、私は(のみ)5.5インチの画面を実行したとき、私は適用されたときにそれがあるべきよう、UIViewのは、すべての方法を伸ばしていないですよう
制約は末尾の、主要な、トップのための両方に設定されています角の半径:
override func viewDidLayoutSubviews() {
self.greenview.round([.TopLeft, .TopRight], radius: CGFloat(10))
}
この行を削除すると正しく動作します。この方法を適切な場所で呼んでいないのですか?ここで
は、問題のスクリーンショットです:
「viewDidLayoutSubviews」の親実装を呼び出していないため、暗闇の中で撮影できますか?さらに、私は 'layoutSubviews'がこれのようなもののより良い場所になると思います。 – SArnab
うん、layoutSubviewsでこれを行うと、問題が修正されました。あなたはこれを答えとして提供することができ、私はそれを受け入れます。 – Kobe