美文网首页程序员
在Masonry布局中怎么获取一个控件的frame

在Masonry布局中怎么获取一个控件的frame

作者: 鄂北 | 来源:发表于2018-08-22 11:43 被阅读201次

    在开发中,我们都会选择使用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就可以了

    相关文章

      网友评论

        本文标题:在Masonry布局中怎么获取一个控件的frame

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