【问题标题】:Misplaced UISegmentedControl (potential bug)错位的 UISegmentedControl(潜在错误)
【发布时间】:2013-11-14 12:30:21
【问题描述】:

我对使用 Apple NSAutolayout 还是很陌生。在最简单的例子中,我可以想象我使用默认模板创建了选项卡式 iPhone 应用程序。然后在第一个视图中,我添加了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 英寸”故事板属性。

【问题讨论】:

  • 我有同样的问题。 +1 很好的问题解释。

标签: ios iphone ios7 uitabbar nslayoutconstraint


【解决方案1】:

尝试在 viewDidLoad 中使用它:

self.tabBarController.tabBar.translucent = NO;

【讨论】:

  • 解决不了问题。透明视图仍然不正确地存在。但它解决了丑陋的“跳跃”所以+1
  • 无论如何,当我在 Storyboard 中将底栏设置为“不透明底栏”时,我很惊讶它仍然无法正常工作。
【解决方案2】:

好的。有两种方法可以消除此类问题:

  • 检查选项“在构建时删除”
  • UISegmentedControl附加到superview而不是顶层

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-14
    • 2016-04-29
    • 2013-04-17
    • 2012-06-02
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多