私はこのようなポップオーバー提示しています:スクロールビューを含むポップオーバーを自動的に上にスクロールする方法を教えてください。
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
からです。
popover
が作成されたviewController
は、次のレイアウトを持ちます。
--View
---Scroll View
----View
-----Text View
私は当初、スペースの厄介な量は、容器の上部とText View
の間にあった問題を抱えていました。 this linkを使用して私はAdjusts Scroll View Insets
を削除することができます。これにより、問題が発生したときに不便なスペースが修正されましたが、scrollView
が表示されても、3分の1がスクロールされ、上部のテキストの一部が非表示になります。
問題: scrollView
は、表示されたときにスクロールする方法の3分の1です。
質問: はscrollView
が自動的storyboard
、すなわち、実行時の属性を使用して一番上にスクロールする初期化する方法はありますか?そうでない場合、私はpopover
をストーリーボードID経由でプログラムで作成しているので、これをプログラムで行うにはどうすればよいですか?
アップデート1 私はviewController
をサブクラス化し、scrollView
ための出口を作成してみました。私のviewDidLoad
で、viewWillAppear
、viewDidLayoutSubviews
、viewDidAppear
、そしてviewWillLayoutSubviews
私は以下のコードを試しました。これは私の問題を解決しませんでした。
let scroll2TopOffset = CGPoint(x: 0, y: 0)
self.aboutUsScrollView.setContentOffset(scroll2TopOffset, animated: true)