Bbx*_*Bbx 6 rotation viewcontroller ios layoutsubviews
当我的主视图旋转时,我想重新排列子视图,所以在我的ViewController中,我重写
willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration
Run Code Online (Sandbox Code Playgroud)
并在那里设置子视图的帧.这一切都很好,但在子视图中我也被覆盖了
layoutSubviews
Run Code Online (Sandbox Code Playgroud)
所以他们正确地布置自己.但问题是这个现在被调用两次 - 大概一次我在willAnimateRotationToInterfaceOrientation中设置Frame而一次因为旋转而设置.(如果我没有设置Frame,它会被调用一次.)
当然,ViewController负责布局框架,这看起来像是一个设计缺陷 - 什么是解决方案,所以layoutSubviews只调用一次?
Arm*_*min 19
我有同样的问题.我发现这个页面对我有帮助.这对你有用吗?
编辑:这是页面的摘要(复制):
- init不会导致调用layoutSubviews(duh)
- addSubview导致在要添加的视图,要添加到的视图(目标视图)以及目标视图的所有子视图上调用layoutSubviews
- 只有当帧的大小参数不同时,setFrame才会智能地调用视图上的layoutSubviews
- 滚动UIScrollView会导致在scrollView上调用layoutSubviews,并且它是superview
- 旋转设备只在父视图上调用layoutSubview(响应的viewControllers主视图)
- removeFromSuperview - layoutSubviews仅在superview上调用(不在表中显示)
| 归档时间: |
|
| 查看次数: |
4587 次 |
| 最近记录: |