はじめに
UIImageView の ContentMode
が反映されない問題は ScrollView の上に UIImageView を置いた場合などに遭遇しやすいです。しかし、今回は UIImageView を Transform
で回転させた場合に同様の現象が発生したときの解決方法をご紹介します。
ContentMode が反映されない一例
let cardView = UIImageView(image: #imageLiteral(resourceName: "sample_image"))
cardView.transform = CGAffineTransform(rotationAngle: 90 * CGFloat.pi / 180)
cardView.frame = CGRect(x: 0, y: 0, width: width, height: height)
cardView.center = self.view.center
cardView.contentMode = .scaleAspectFit
self.view.addSubview(cardView)
解決方法
Transform する前に ContentMode を指定しておくことで、回転後も ContentMode が反映された状態で表示されるようになります。
let cardView = UIImageView(image: #imageLiteral(resourceName: "sample_image"))
+ cardView.contentMode = .scaleAspectFit
cardView.transform = CGAffineTransform(rotationAngle: 90 * CGFloat.pi / 180)
cardView.frame = CGRect(x: 0, y: 0, width: width, height: height)
cardView.center = self.view.center
- cardView.contentMode = .scaleAspectFit
self.view.addSubview(cardView)
おわりに
間違っている箇所などありましたら、ご指摘いただけると嬉しいです。
見ていただきありがとうございます