UIViewを角丸にしようとしてもdraw(_ rect: CGRect)をオーバーライドしたら四角になる
Xcode 10.1 Swift 4.2
UIViewの角丸は
しかし次のように
override func draw(_ rect: CGRect)
を書いてしまうとダメになる。
しかし、viewにシャドウを付ける場合はself.clipsToBounds = trueによってシャドウが消える。角丸にしてシャドウをつけるのはよくあるので困る。
UIViewの角丸は
class MyView: UIView { init() { super.init(frame: .zero) self.backgroundColor = UIColor.white self.layer.cornerRadius = 10.0 } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } }とすると出来る。
しかし次のように
override func draw(_ rect: CGRect)
を書いてしまうとダメになる。
class MyView: UIView { init() { super.init(frame: .zero) self.backgroundColor = UIColor.white self.layer.cornerRadius = 10.0 } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func draw(_ rect: CGRect) { super.draw(rect) } }この場合、self.clipsToBounds = trueをinit()などに書いてやると丸く収まる。
しかし、viewにシャドウを付ける場合はself.clipsToBounds = trueによってシャドウが消える。角丸にしてシャドウをつけるのはよくあるので困る。
コメント
コメントを投稿