【问题标题】:iOS 7 UIView - Subview overlapping on status bariOS 7 UIView - 状态栏上的子视图重叠
【发布时间】:2014-03-31 11:41:32
【问题描述】:

我为注册表单创建了一个 UIView 容器,里面有一个用于登录表单的子视图。因此,浏览“已注册按钮”操作

- (IBAction)registeredButton:(id)sender {
    [UIView animateWithDuration:0.3 animations:^{
        _loginOverlayView.frame = self.view.frame;
    }];
}

我的问题基本上是;为什么子视图在状态栏上重叠。我该如何解决它!

_loginOverlayView

ps:使用 Xcode 5、iOS7

【问题讨论】:

  • 你用过故事板吗?
  • @Seyhun 你能发布你的故事板屏幕吗?
  • @Zhans cl.ly/image/20281V2m3331 子视图隐藏在船上。
  • 因此您可以将下面的 yOrigin 更改为 20 个点
  • 在Attribute inspector.so中使用ios 6/7 Delta,尝试学习如何设置。是的,取消选中自动布局。

标签: ios objective-c uiview xcode5


【解决方案1】:

打开 Storyboard,在视图控制器的设置中检查 Attribution Inspector。在 Extend Edges 中,第一行 'Under top bars' 应该被勾选

更新:

文件检查器中的“使用自动布局”怎么样?打勾?

UPD2:

哦,我认为您应该将视图向下移动 64 像素(20 像素状态栏,44 像素导航控制器)。因为,不知何故你的插图和布局不起作用

【讨论】:

  • 在iOS编程中,大小单位的基础是'pt',而不是px。
【解决方案2】:
#define IS_IOS_7 ([[UIDevice currentDevice].systemVersion floatValue] < 7.0 ? NO : YES)

if (IS_IOS_7)
{
    self.edgesForExtendedLayout = UIRectEdgeNone;
}

【讨论】:

  • 如果设置了 edgesForExtendedLayout,键盘的跳过按钮将不再起作用。 cl.ly/image/330U2Q3v2r3x
  • 不可能...我总是在我的应用程序中使用这行代码。对于跳过按钮,您是什么意思? “下一个”?
  • “下一步”按钮不会自动工作。您必须在 UITextField 委托方法中实现。
【解决方案3】:

在 iOS 7 中,视图的 (0,0) 从设备的 (0,0) 开始,即在状态栏内。

您可以通过情节提要或代码中的自动布局来修复它......或者如果它是 iOS 7,您可以简单地向视图的框架添加 20 个像素......

#define ISOS_7    ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-24
    • 2014-11-13
    • 1970-01-01
    • 1970-01-01
    • 2013-09-24
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多