iOS layoutSubviews 什么时候会被调用

原文:When does layoutSubviews get called?

 

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.

 


 

。init does not cause layoutSubviews to be called (duh)

 

初始化时不会调用layoutSubviews

 

。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

 

[view addSubview:subView]会使view,subView和view的所有子view都调用layoutSubviews

 

。setFrame intelligently calls layoutSubviews on the view having it’s frame set only if the size parameter of the frame is different

 

setFrame,只有当改变frame的frame.size并且改变前后的size大小不一样时会调用layoutSubviews,改变frame.origin不会调用layoutSubviews

 

。scrolling a UIScrollView causes layoutSubviews to be called on the scrollView, and it’s superview

 

滑动UIScrollView会使该scrollview和它的父视图调用layoutSubviews

 

。rotating a device only calls layoutSubview on the parent view (the responding viewControllers primary view)

 

旋转设备只会使父视图调用layoutSubviews

 

。removeFromSuperview – layoutSubviews is called on superview only

 

removeFromSuperview只会是父视图调用layoutSubviews

 


 

建议大家看原文,上面只是摘录

 

 

转载于:https://www.cnblogs.com/ygsios/p/4434171.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值