2
1

More than 3 years have passed since last update.

UIImageViewのdraw(_ rect: Rect)は呼ばれない

Posted at

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メソッドで独自の描画処理をしようねって書いてある。
いい感じの解決法はまだ見つけられていない。

2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1