美文网首页
When does layoutSubviews get cal

When does layoutSubviews get cal

作者: 疯狂的向日葵 | 来源:发表于2016-02-25 20:29 被阅读125次

    It’s important to optimize any UIView layoutSubviews method you create, as it can be frequently called, and has the potential for creating recursion (triggering a setNeedsLayout from layoutSubviews can create a loop that will grossly affect your apps performance). Layout subviews is called once per run loop on any view that has had setNeedsLayout or setNeedsDisplayWithRect: called on it. So in addition to any time you manually call these methods, it can be useful to know when the UI framework calls setNeedsLayout/setNeedsDisplay as this will trigger layoutSubviews.

    For this purpose, I will define a few view relationships:

    ·View1 – UIView class, root view for examples
    ·View1.1 – UIScrollView class, subview of View1
    ·View1.1.1 – UIView class, subview of View1.1 (No autoresize mask)
    ·View1.1.2 – UIView class, another subview of View1.1 (Autoresize mask – flexible width)
    I then ran the following tests. An X means the view was layed out

    Screen-shot-2011-03-16-at-11.28.52-AM.png

    From this I surmise the following:

    init does not cause layoutSubviews to be called (duh)
    addSubview causes layoutSubviews to be called on the view being added, the view it’s being added to (target view), and all the subviews of the target view
    setFrame intelligently calls layoutSubviews on the view having it’s frame set only if the size parameter of the frame is different
    scrolling a UIScrollView causes layoutSubviews to be called on the scrollView, and it’s superview
    rotating a device only calls layoutSubview on the parent view (the responding viewControllers primary view)
    removeFromSuperview – layoutSubviews is called on superview only (not show in table)
    Hopefully this is helpful information for you as well.

    FROM:http://blog.logichigh.com/2011/03/16/when-does-layoutsubviews-get-called/

    相关文章

      网友评论

          本文标题:When does layoutSubviews get cal

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