When is the layoutSubviews method called?

后端 未结 3 1722
粉色の甜心
粉色の甜心 2020-12-25 10:22

I am going through a tutorial that mentions the following method:

-(void)layoutSubviews

located in CustomerCell.m

When is this meth

相关标签:
3条回答
  • 2020-12-25 10:52

    The layoutSubviews method will be called any time the system thinks your view needs to be layed out again. For example, if the view's frame is changed, or a subview is added, etc. If you need to manually trigger this, you can call the setNeedsLayout method.

    0 讨论(0)
  • 2020-12-25 11:07

    You will find your answer here

    EDIT: copied directly from the blog:

    • 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
    0 讨论(0)
  • 2020-12-25 11:07

    You are correct. Layout subviews is automatically invoked. Check the docs for more information on it.

    The docs don't specifically say WHEN this is called. However, you can pretty much guarantee it is called rather often. You really only want to override this method when you can't have your subviews resize or move themselves using struts and springs. One instance would be reorganizing subviews positions when the device changes orientation.

    0 讨论(0)
提交回复
热议问题