UIImageView
を丸くしたくて
myImageView.layer.cornerRadius = myImageView.frame.width * 0.5
myImageView.layer.masksToBounds = true
をいろんなところに書いている。
CircleImageViewみたいなUIImageViewのサブクラスを作ってdraw
メソッドをオーバーライドすれば共通化できるんじゃないかと考えて以下のようなクラスを作ってみた。
import UIKit
@IBDesignable class CircleImageView: UIImageView {
override func draw(_ rect: CGRect) {
layer.cornerRadius = rect.size.width * 0.5
clipsToBounds = true
}
}
が、丸くならない…
調べてみるとUIImageViewのdrawRectメソッドは呼ばれないらしいということがわかった。まじかよ…
UIImageViewではなくUIViewを継承してdrawメソッドで独自の描画処理をしようねって書いてある。
いい感じの解決法はまだ見つけられていない。