【发布时间】:2017-05-23 06:43:50
【问题描述】:
我正在展示这样的弹出框:
let popoverContent = (self.storyboard?.instantiateViewController(withIdentifier: segueIdentifiers.informationPopover))! as UIViewController
let nav = UINavigationController(rootViewController: popoverContent)
nav.modalPresentationStyle = UIModalPresentationStyle.popover
let popover = nav.popoverPresentationController
popoverContent.preferredContentSize = CGSize(width: 500,height: 600)
popover?.delegate = self
popover?.sourceView = self.view
popover?.sourceRect = CGRect(x: 0, y: 0, width: 100, height: 100)
self.present(nav, animated: true, completion: nil)
和
func adaptivePresentationStyle(for controller: UIPresentationController, traitCollection: UITraitCollection) -> UIModalPresentationStyle {
return .none
}
正在创建的弹出框来自在storyboard 中创建的viewController。
viewController 和 popover 的创建具有以下布局。
--View
---Scroll View
----View
-----Text View
我最初遇到的问题是容器顶部和Text View 之间的空间量很大。使用this link 我看到我可以删除Adjusts Scroll View Insets。这解决了顶部问题的尴尬间距,但是当scrollView 出现时,它仍然向下滚动三分之一并且顶部的一些文本被隐藏。
问题:
scrollView 是呈现时向下滚动的三分之一。
问题:
有没有办法使用storyboard(即运行时属性)将scrollView 初始化为在顶部自动滚动?如果不是,由于我是通过情节提要 ID 以编程方式创建 popover,我该如何以编程方式执行此操作?
更新 1
我尝试将我的viewController 子类化并为scrollView 创建一个出口。在我的viewDidLoad、viewWillAppear、viewDidLayoutSubviews、viewDidAppear 和viewWillLayoutSubviews 中,我尝试了以下代码。这并没有解决我的问题。
let scroll2TopOffset = CGPoint(x: 0, y: 0)
self.aboutUsScrollView.setContentOffset(scroll2TopOffset, animated: true)
【问题讨论】:
标签: ios uiscrollview swift3 uistoryboard uipopover