当场景嵌入到 NavigationController 中时,如何防止 UIScrollView 被下推?
Posted
技术标签:
【中文标题】当场景嵌入到 NavigationController 中时,如何防止 UIScrollView 被下推?【英文标题】:How to prevent UIScrollView from getting pushed down, when the scene is embedded in a NavigationController? 【发布时间】:2017-03-04 18:12:51 【问题描述】:我有一个相当复杂的自定义视图设置。 ScrollView 内的 StackView 等。
在我将 ViewController 嵌入 NavigationController 之前,一切正常。 (我花了太长时间才弄清楚.. grinch)
它应该是什么样子:
NavigationController 的样子
我认为这与 NavigationBar 有关。但是,由于我对 ios 开发还很陌生,所以我不知道要更改什么。
如果你想看看,我在下面创建了一个 GitHub repo:
https://github.com/Shanakor/ScrollViewIssue
提前致谢
【问题讨论】:
【参考方案1】:取消选中 ViewController 中的“调整滚动视图插图”。这解决了你的问题。
说明:
从 iOS 7 开始,Apple 改变了带有 UIScrollViews 的 ViewControllers 的显示方式。
当 ViewController 的第一个子视图是 UIScrollView
时,UIScrollView 将从 ViewController 的顶部开始呈现 - 即使 UINavigationBar
在顶部 - 除非您取消选中该按钮或设置 @987654325 @ 到 false
以编程方式。
【讨论】:
您愿意解释一下,为什么这可以解决我的问题?这个选项有什么用,系统做什么或试图做什么? 哦。好的,这是有道理的。太感谢了。我想这是为了在 iOS 应用程序中提供更好的外观和感觉,因为内容滚动到导航栏下方。 没错,就是这个原因:)【参考方案2】:在viewDidLoad()
中将automaticallyAdjustsScrollViewInsets
设置为false
:
override func viewDidLoad()
super.viewDidLoad()
automaticallyAdjustsScrollViewInsets = false
// Do any additional setup after loading the view, typically from a nib.
更多信息,请查看Apple's documentation。
希望这会有所帮助。
【讨论】:
以上是关于当场景嵌入到 NavigationController 中时,如何防止 UIScrollView 被下推?的主要内容,如果未能解决你的问题,请参考以下文章
拨开发展迷雾,将“智慧”嵌入全业务场景2022戴尔科技峰会预告
当 WKWebView 嵌入到 UITableViewCell 中时,WebView 的后半部分不会显示