使用Masonry布局如何获取控件的frame值

在开发中,我们都会选择使用Masonry来做适配,但是有时我们又需要获取某个控件的frame,这时就会发现用Masonry布局的获取不到控件的frame。
这是因为用Masonry布局时控件的还没有在视图上展示出来,所以frame也就没有了,具体原理就得看Masonry实现的原理了,单用frame布局的就会有。
这时如果我们需要获取到frame的话就得刷新视图

[self.view layoutIfNeeded];

这个方法将会刷新视图。在这个方法后就能获取frame

想要再深入了解的可以点这个链接看看
https://www.jianshu.com/p/87565c06117c

在这里对于这链接稍微加上我个人的理解
LayoutIfNeeded并不是马上就刷新布局的,而是在系统认为在合适的情况下刷新的,至于什么是合适的情况小编就不知道了。如果需要马上刷新可以在LayoutIfNeeded前加上setNeedsLayout

// 像这样
    [self.view setNeedsLayout];
    
    [self.view layoutIfNeeded];

如果仅仅是想获取frame直接用layoutIfNeeded就可以了

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容