iOS10、Xcode8 适配 UI 遇到坑 (layoutIfNeeded)

iOS10、Xcode8 适配 UI 遇到坑 (layoutIfNeeded)_第1张图片
Snip20161012_1.png
iOS10、Xcode8 适配 UI 遇到坑 (layoutIfNeeded)_第2张图片
CADE9A0325F453FE4AA5670EBB21E4EE.jpg
前言:

如上图所示,图一是正常的,但是最近升级 Xocde8.0 适配 iOS10 的时候出现了图二的情况,已经确保约束各个方面都没有问题的,但是看到,上面的视图明显被拉伸了,打印了了上面视图的 frame > 一直很费解为什么宽和高会变为1000 ,刚开始以为是自己约束的问题,纠结了很久,现在找到了解决方法

造成原因:

Xcode8方式编译后,在UIView还没有“布局完毕”的时候默认返回的frame的size大小为1000x1000,等到“布局完毕”后才能获取到正确的大小。

解决方法:

在viewDidLoad或者awakeFromNib调用完super方法后再调用View的layoutIfNeeded即可获取到正确的frame值。

-(void)awakeFromNib{
    [super awakeFromNib];
    //调用此方法后,才可以获取到正确的frame
    [self layoutIfNeeded];
}

- (void)viewDidLoad {
    [super viewDidLoad];
    //调用此方法后,才可以获取到正确的frame
    [self.topView layoutIfNeeded];
}

你可能感兴趣的:(iOS10、Xcode8 适配 UI 遇到坑 (layoutIfNeeded))