[Swift4] 회전을 동반하는 UIImageView에 Content Mode가 반영되지 않음

3109 단어 UIImageViewSwiftiOS

개시하다


UIImageViewContentMode가 반영되지 않은 문제는 ScrollView에 UIImageView가 설치되어 있는 경우를 쉽게 만날 수 있다.그러나 이번에는 UIImageViewTransform가 회전하는 상황에서 같은 현상이 발생했을 때의 해법을 소개한다.

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)

끝말


잘못된 점이 있다면 지적해 주시면 감사하겠습니다.
시청해 주셔서 감사합니다

좋은 웹페이지 즐겨찾기