iOS aspect fit and center

2019-06-23 15:56发布

I'd like to call

[self.view setContentMode:UIViewContentModeScaleAspectFit | UIViewContentModeCenter];

where self is an instance of UIViewController. This doesn't seem to work; what are the direct alternatives, if any?

标签: ios uiview
2条回答
该账号已被封号
2楼-- · 2019-06-23 16:44

You will need to set contentMode once when the view loads and then center it in viewWillLayoutSubviews which is called upon device rotation.

override func viewDidLoad() {
  super.viewDidLoad()
  //additional code to instantiate and setup image
  imageView.contentMode = .ScaleAspectFit
  self.view.addSubview(profileImageView)
}

override func viewWillLayoutSubviews() {
    imageView.center.x = view.center.x
    //or imageView.center = view.center
    //or imageView.center.y = view.center.y
}
查看更多
太酷不给撩
3楼-- · 2019-06-23 16:47

The contentMode is not a mask; you can't use | to combine values, you'll have to pick one. UIViewContentModeScaleAspectFit should center the content if it doesn't fit the view.

查看更多
登录 后发表回答