如何在应用自动布局后获取UIImageView大小?

Kib*_*tik 8 objective-c ios

我的故事板有UIImageView,它可以通过自动布局约束自动定位和缩放.

应用程序运行时,会根据设备屏幕大小和自动布局限制正确调整此UIImageView的大小和位置.

如何在屏幕上显示UIImageView框架获取它?常见的UIImageView.bounds和UIImageView.frame值返回在故事板中使用的原始值,并且不反映新的UIImageView大小.

tba*_*nes 16

为了UIImageView在调整大小后获得正确的框架/边界,您首先需要使用自动布局来更新该布局[yourImageView layoutIfNeeded].这将解决您的约束并更新您的yourImage.bounds.

[myImageView layoutIfNeeded];
NSLog(@"w: %f, h: %f", myImageView.bounds.size.width, myImageView.bounds.size.height);
Run Code Online (Sandbox Code Playgroud)


ork*_*ein 7

检查这些方法:

- (void)viewWillAppear:(BOOL)animated {
// view is about to be added to hieararchy
}

- (void)viewDidAppear:(BOOL)animated {
// view was added
}

- (void)viewDidLayoutSubviews {
// VC just laid off its views
}
Run Code Online (Sandbox Code Playgroud)

  • @Kibernetik,别忘了叫**超**! (2认同)