解决Xcode8中约束设置后,出现frame(0,0,1000,1000)的问题

最近在升级iOS10和Xcode8后出现了一个奇怪的问题,在所有使用autolayout的自定义视图中,在计算控件的frame时,总是出现控件的frame为(0,0,1000,1000)的情况。

问题如下:

解决Xcode8中约束设置后,出现frame(0,0,1000,1000)的问题_第1张图片
无法计算出用户头像的宽度
解决Xcode8中约束设置后,出现frame(0,0,1000,1000)的问题_第2张图片
头像的frame为{{0,0},{1000,1000}}

于是本人花了一些时间进行问题的查找,最后发现只要在需要对控件进行修改前,调用一下该空间的layoutIfNeeded()方法便可。

代码如下:

-(void)awakeFromNib{
    [super awakeFromNib];
    [self layoutIfNeeded];
    self.autoresizingMask = UIViewAutoresizingNone;
    //对用户头像的样式进行设置
    [self setupAuthorPhotoStyle];
}

问题解决:

已经成功获取了头像控件的frame
解决Xcode8中约束设置后,出现frame(0,0,1000,1000)的问题_第3张图片
问题解决

你可能感兴趣的:(解决Xcode8中约束设置后,出现frame(0,0,1000,1000)的问题)