2017-01-09 7 views
1

私はこのようなポップオーバー提示しています:スクロールビューを含むポップオーバーを自動的に上にスクロールする方法を教えてください。

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で、viewWillAppearviewDidLayoutSubviewsviewDidAppear、そしてviewWillLayoutSubviews私は以下のコードを試しました。これは私の問題を解決しませんでした。

let scroll2TopOffset = CGPoint(x: 0, y: 0) 
self.aboutUsScrollView.setContentOffset(scroll2TopOffset, animated: true) 

答えて

0

ソリューション: - よりよいがあるかどうかを知りたいtextViewは、そのスクロールがviewDidLoadでオフにして、未解決の問題を残してviewDidAppear

class AboutUsViewController: UIViewController { 
    @IBOutlet weak var aboutUsTextView: UITextView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     aboutUsTextView.isScrollEnabled = false 
    } 

    override func viewDidAppear(_ animated: Bool) { 
     aboutUsTextView.isScrollEnabled = true 
    } 
} 

にオンに戻す持っている必要がありますこれを行う方法。

関連する問題