3

フルスクリーンのtextViewを備えたペン先があります。ではviewDidLoad

self.textView.attributedText = //some text;

これと同じくらい簡単で、iPhoneの横向きモードを除いて正常に動作します。

横向きモードでこのページに移動するとcontentOffset.y、この textView はゼロに初期化されません。したがって、デフォルトでは、スクロール位置はコンテンツの中央にあります(これはコンテンツの先頭にあると予想していました)。

iPad と iPhone のポートレート モードの場合、スクロール位置はコンテンツの先頭 (contentOffset.yゼロ) です。

4

5 に答える 5

4

iOS7 では、一番上までスクロールするには、コンテンツ インセットを考慮する必要があります。また、Altaveron が言うように、次の実行ループの反復を待つ必要があることもわかりました。

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
    _textView.contentOffset = CGPointMake(-_textView.contentInset.left, -_textView.contentInset.top);
});
于 2014-07-18T20:42:37.870 に答える
3

iOS 7 でも同じ問題が発生していました。UITextView のスクロールは、ランドスケープ ビューの途中から始まります。ビューコントローラーの上部にナビゲーションバーがあります。この問題を解決するために、viewDidLoad の contentOffset を次のように設定しました。

[self.textView setContentOffset: CGPointMake(0,-200) animated:NO];

ナビゲーション バーとのバランスをとるために 200 を引いています。そして、それは私のために働きました。viewDidLoad で設定されているため、ユーザーが向きを変更しても y オフセットは 0 にリセットされません。

それが役に立てば幸い!

于 2014-03-09T06:54:31.567 に答える
1

iOS8 以前のバージョンの iOS では、textView.contentOffset = CGPointZero. しかし、iOS 9からは、更新する必要があると思いますviewDidLayoutSubviews()

于 2016-10-19T15:59:51.183 に答える
0

私の同様の問題は、次の方法で解決されました。

textView.contentOffset = CGPointMake(0.0, -50)

特定のデバイスでは、textView は最初はわずかに下にスクロールされます。しかし、一番上までスクロールする必要がありました。

何らかの理由で、CGPointZero に設定しても影響はありませんでした。ただし、オフセット y を大きな負の数に設定するとうまくいきました。

于 2016-04-26T18:53:32.443 に答える