UIPopover 中显示时的 UINavigationController 内容偏移

Posted

技术标签:

【中文标题】UIPopover 中显示时的 UINavigationController 内容偏移【英文标题】:UINavigationController content offset when displayed in UIPopover 【发布时间】:2014-10-07 14:31:54 【问题描述】:

我有一个视图,我将其加载到 UINavigationController 中,并在 iPad 上显示为弹出框或在 iPhone 上显示为模态视图。

我遇到的奇怪现象是,当此导航显示在弹出窗口中时,它的内容会出现偏移或下推约 60 像素。下面是这个现象的截图。

目前出现这种情况是因为我将最高约束设置为 80,以补偿 iPhone。如果我将其设置为更直观的值,例如 10 或 20,标签将完全隐藏在 iPhone 导航栏下,而弹出框会显示正确。

有什么建议吗?我知道我可以根据它是在模式还是弹出窗口中手动调整顶部约束,但我宁愿更改导航栏上的某些属性以禁用偏移或类似的东西,因为 Apple 现在不推荐使用设备成语:- (

提前致谢。

【问题讨论】:

【参考方案1】:

尝试在 StoryBoard 上设置 Adjust Scroll View Insets 并检查 Extended Edges 设置。

@property(nonatomic,assign) BOOL automaticallyAdjustsScrollViewInsets NS_AVAILABLE_ios(7_0); // Defaults to YES
@property(nonatomic,assign) UIRectEdge edgesForExtendedLayout NS_AVAILABLE_IOS(7_0); // Defaults to UIRectEdgeAll
@property(nonatomic,assign) BOOL extendedLayoutIncludesOpaqueBars NS_AVAILABLE_IOS(7_0); // Defaults to NO, but bars are 

【讨论】:

有没有办法以编程方式设置这些?我没有使用故事板,所以我没有这些选项。

以上是关于UIPopover 中显示时的 UINavigationController 内容偏移的主要内容,如果未能解决你的问题,请参考以下文章

UIPopover 导航按钮内的 UINavigationController 未显示

UIPopover 中的导航栏

使用 UIPopover 显示键盘

UIPopover 内部不显示视图

自定义 UIPopover

防止一次显示多个 UIPopover