美文网首页
自动约束frame获取

自动约束frame获取

作者: 丢了理想000 | 来源:发表于2018-03-31 17:45 被阅读0次

在View里

-(void)layoutSubviews {   

 [superlayoutSubviews];// 获取到约束后的控件frame

}

在controller里

- (void)viewDidLayoutSubviews {   

 [superviewDidLayoutSubviews];// 获取到约束后的控件frame

}

multipler属性表示约束值为约束对象的乘因数,dividedBy属性表示约束值为约束对象的除因数,可用于设置view的宽高比

layoutSubviews

这个方法,默认没有做任何事情,需要子类进行重写 。 系统在很多时候会去调用这个方法:

1.初始化不会触发layoutSubviews,但是如果设置了不为CGRectZero的frame的时候就会触发。

2.addSubview会触发layoutSubviews

3.设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化

4.滚动一个UIScrollView会触发layoutSubviews

5.旋转Screen会触发父UIView上的layoutSubviews事件

6.改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件

setNeedsLayout

标记为需要重新布局,不立即刷新,但layoutSubviews一定会被调用

配合layoutIfNeeded立即更新

layoutIfNeeded

如果,有需要刷新的标记,立即调用layoutSubviews进行布局

相关文章

  • 自动约束frame获取

    在View里 -(void)layoutSubviews { [superlayoutSubviews];// ...

  • iOS如何获取xib在autolayout之后的frame

    对于视图view来说,如果想获取xib中自动布局后的 frame,需要在layoutSubviews方法中获取自动...

  • 获取xib的autolayout后的frame

    对于视图view来说,如果想获取xib中自动布局后的frame,需要在layoutSubviews方法中获取自动布...

  • iOS masonry约束立即生效

    在使用masonry设置布局时,设置的约束并不会立即生效,此时获取frame都为0。但有的时候,我们需要获取此时的...

  • masonry 设置圆角时机

    问题:设置完约束之后是无法立刻获取frame的 解决:layoutSubviews 视图布局完成之后,此时试图的大...

  • AutoLayout, Xib, UIView

    不要在 - (void)viewDidLoad; 方法里获取Xib里面的frame值:举例:在一个XIb中含约束...

  • iOS autoLayout自动布局

    ⚠️对于使用自动布局首先要注意以下几点: 不要使用frame布局,这样可以尽量减少约束冲突。 一定要在设置约束之前...

  • setNeedsLayout和layoutIfNeeded

    在使用布局约束的时候有时候需要立即获取视图的frame信息,这时候获取到的全部都是0,这是因为刚添加完约束条件,这...

  • Masonry使用笔记

    如果要获取一个使用Masonry布局的视图的frame,需要在设置约束之后调用[self.view updateC...

  • 2021-11-05(获取masonry自动布局的控件的fram

    如何获取masonry自动布局的控件的frame? 调用view的layoutIfNeeded方法后可以查看该控件...

网友评论

      本文标题:自动约束frame获取

      本文链接:https://www.haomeiwen.com/subject/iqedsxtx.html