5

我对使用 Apple 很陌生NSAutolayout。在最简单的例子中,我可以想象我使用默认模板创建了选项卡式 iPhone 应用程序。然后在第一个视图中,我UISegmentedControl向他添加了 2 个约束:“将 X 中心对齐到:SuperView”和“底部空间到:底部布局指南”。然后,当我运行应用程序时,UISegmentedControl位置是正确的,但是当我切换到第二个视图并返回时,它UISegmentedControl会下降并被UITabBar. 当我旋转设备时,分段控制位置会回到正确的位置。

有没有办法避免这种情况?

编辑:很少有快照显示问题。

之前 http://img824.imageshack.us/img824/6830/o2v2.png 之后 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 英寸”故事板属性。

4

2 回答 2

1

尝试在 viewDidLoad 中使用它:

self.tabBarController.tabBar.translucent = 否;

于 2013-12-17T06:11:44.530 回答
0

好的。消除此类问题有两种可能性:

  • 检查选项“在构建时删除”
  • 附加UISegmentedControl到超级视图而不是顶层
于 2014-02-27T09:33:17.527 回答