在我的iPhone应用程序自动调整,我有两个观点(实际上是一个正面&后视图)一个视图控制器。前视图是主要的UIView,后视图是辅助UIView,在隐藏它时显示后面和[backView removeFromSuperview]
时使用[self.view addSubview:backView]
作为子视图添加。然而,当方向的变化,我有以下问题:主要的UIView(FrontView中)旋转&的所有元素调整得当,但二级/子视图的UIView(backView)不旋转&的所有元素不正常调整。有没有人有关于如何根据我在界面生成器中设置的规则正确地进行辅助UIView自动调整的建议?的UIView子视图不会对方向变化
回答
最后,我发现的解决方案只是简单地将我的UIViews分离成单独的UIViewControllers,并确保我希望能够旋转的任何视图只有一个UIView。
如果我理解正确的话,在“backView”旋转时已被删除,从它的上海华,是吗?如果是这样,那就是问题的原因。 autoresize属性确定视图相对于其超级视图的大小。如果它没有超级视图,它不会调整大小。
也许使用[backView setHidden:YES]而不是[backView removeFromSuperview]将足以满足您的需求。
我有同样的问题,这是我如何固定它的基础上imaginaryboy的 建议(感谢!)
的backview添加到ViewController在viewDidLoad中,并把它隐藏在同一时间。在需要时显示,再次隐藏。将背视图的大小设置为IB中的UIViewAutoresizingFlexibleWidth(或者我猜,我使用了IB)
不是这是同样的问题,但是在我的应用程序中添加2个子视图时发现了类似的问题:didFinishLaunchingWithOptions方法。因为你上面的参考是使用[self.view addSubview:view],我会明白,这意味着自己不是你的UIWindow。将附加视图控制器添加到App Delegate窗口(UIWindow)时,第二个视图控制器将不会接收任何旋转事件,并且永远不会旋转。只有添加到UIWindow的第一个视图控制器才会旋转。请参阅:Technical Q&A QA1688我相信这也影响在第一个视图之后添加的视图,其中第一个视图稍后从超级视图中移除。
我结束了我读其他地方使用不同的视图对于每个方向,从而无需担心调整行为的建议如下。一如既往,YMMV。
或;如果你想避免额外的控制器,可以通过设置willRotateToInterfaceOrientation :: view.frame像这样
if(UIInterfaceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation])) ;//set stubborn view.frame for landscape orientation
else ; //set stubborn view.frame for portrait orientation
虽然感觉就像一个黑客达到相同的效果;这很简单。
- 1. UIView子视图不改变方向
- 2. 确保UIView子视图的方向
- 3. UIView子视图没有响应变化
- 4. 对齐UIView的子视图
- 5. IOS迅速变化的方向会改变的UIView设计
- 6. 针对方向变化的网页视图不一致
- 7. UISplitViewController detailViewController子视图不是方向变化适当调整
- 8. UIView的方向变化编程
- 9. iOS:带子视图的UIView当视图的zPosition变化时按钮点击事件不会触发
- 10. UIView子视图不动画
- 11. UIView子视图不出现
- 12. 自定义UIView布局与方向和动画的子视图?
- 13. 更新方向变化UITableViewCell子视图约束
- 14. 当UIView帧发生变化时,视图内的AVPlayer层不会调整大小
- 15. 的UIView beginanimations:子视图不得动画
- 16. 的UIView子视图不旋转
- 17. 不更新子视图的UIView?
- 18. 的UIView addSubview和子视图不显示
- 19. setNeedsLayout在UIView的子视图
- 20. 改变方向变化的图像
- 21. 的UIView动画块不是动画视图的子视图
- 22. 如何使一个UIView子视图不会滚动
- 23. 父UIView不包含/裁剪子视图
- 24. 隐藏uiview,但不是子视图?
- 25. UIView子视图不平滑地动画
- 26. UIView(子视图)不发送IBActions到AppDelegate
- 27. UIView子视图不响应代表
- 28. UIView和子视图 - 不透明度
- 29. 添加UIView子视图不工作
- 30. UIView不自动调整子视图
不幸的是,即使backView也处于超视图中,也会发生这种情况。而我刚刚尝试了使用'[backView setHidden:YES]'的建议',但它也没有做到这一点。 – Jason 2010-08-25 05:35:37
是backView.autoresizesSubviews == YES?想必它是因为它是默认的,但到目前为止,这是我能想到的唯一的其他事情。 – imaginaryboy 2010-08-25 05:42:14
是的,它等于是。 – Jason 2010-08-25 14:21:55