我很擅长使用Apple NSAutolayout
。在最简单的例子中,我可以想象我使用默认模板创建了带标签的iPhone App。然后在第一个视图中,我添加了UISegmentedControl
并向他添加了2个约束:“将中心X对齐:SuperView”和“底部空间到:底部布局指南”。然后,当我运行应用时,UISegmentedControl
位置是正确的,但当我切换到第二个视图并返回时,UISegmentedControl
会关闭并被UITabBar
隐藏。当我旋转设备时,分段控制位置会回到正确的位置。
有避免这种情况的解决方案吗?
编辑:很少有快照显示问题。
Before http://img824.imageshack.us/img824/6830/o2v2.png After http://img5.imageshack.us/img5/2205/ksb6.png
编辑2:我找到了临时解决方案。
您需要使用属性存储数据,例如:
@property (nonatomic, assign) CGRect fix_didLoadSegmentedFrame;
然后在viewDidLoad
和处理值更改UISegmentedControl
的函数中,你应该添加一行:
self.fix_didLoadSegmentedFrame = self.mapTypeSegmentedControl.frame;
您还应该设置“应用视网膜3.5英寸”故事板属性。
答案 0 :(得分:1)
尝试在viewDidLoad中使用它:
self.tabBarController.tabBar.translucent = NO;
答案 1 :(得分:0)
奥基。有两种方法可以消除此类问题:
UISegmentedControl
附加到superview NOT不是顶层