Chi*_*ken 29 ios autolayout ios-autolayout
我是一名新开发者iOS.
我使用自动布局.
我有个问题.在约束之后,我无法获得UIView的实际大小.
例如,当我想获得UIView带约束的大小时
self.container.frame.size.height
Run Code Online (Sandbox Code Playgroud)
对于所有设备尺寸,它总是返回550.但是当我在差异设备上运行它时,我可以看到它有不同的大小.
谢谢
All*_*len 46
在"获取实际大小代码"之前,请插入以下代码:
[view setNeedsLayout];
[view layoutIfNeeded];
Run Code Online (Sandbox Code Playgroud)
Lea*_*ros 18
由于每个人都认为访问是通过a UIViewController而不是在UIView子类内完成的,因此答案并不真正有用.获得正确大小的UIView子类的正确方法是layoutSubviews.
这太棒了.
如果您想在自动布局使用期间不使用layoutsubviews方法获取帧,请使用以下方法:
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"View frame: %@", NSStringFromCGRect(view.frame));
})
Run Code Online (Sandbox Code Playgroud)
似乎- (CGSize)systemLayoutSizeFittingSize:(CGSize)targetSize;是您要寻找的东西:
返回值
满足其约束的视图的大小。讨论
确定所有视图及其子视图的约束来确定视图的最佳大小。
| 归档时间: |
|
| 查看次数: |
28249 次 |
| 最近记录: |