OC中 我们使用xib创建的View,如果说想获得控件自动布局后的frame就需要在:
- (void)layoutSubviews
{
[super layoutSubviews];
//下面两行代码必不可少
[self.contentView setNeedsLayout];
[self.contentView layoutIfNeeded];
//下面就可以获取自动布局之后的frame
}
2.如果我们想要获取的是vc控制器的控件frame,那么我们需要在:
- (void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
//下面去获取frame 是正确的
}
setNeedsLayout : 标记需要重新布局,异步调用layoutIfNeeded去刷新布局,不会立即去刷新,而是等待下一次runloop结束前刷新。
layoutIfNeeded:如果有需要刷新的标记,就立即去刷新。
如果我们需要在当前runloop立即去刷新布局,可以先调用setNeedsLayout标记需要去刷新,然后调用layoutIfNeeded立即刷新布局
获取xib自动布局后的frame
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- //xib获取控件适配后的真实frame-(void)layoutSubviews {[super layoutS...
- iphone屏幕大小越来越多样化,使用frame来布局已经是强弩之末,好多同行前辈已经把autolayout研究的...
- 获取自动布局后的高度 调用self.tagView父视图的 layoutIfNeeded 后可以获取高度layou...