結構長い間悩んだ問題です。
UITextViewを使って編集不可の長文(取説など)を表示したいのだけど、特に設定しないと、画面を開いた時に何故か途中からの表示になってしまった。
読んでもらう為に書いたので頭から表示したいのだが途中から表示される。
多分こちらのサイトの方も同じ問題と思われる。
iOS – UITextView が初期表示時に勝手にスクロールする – Qiita
xcodeのtextviewのレイアウトについて – textviewに長文を載… – Yahoo!知恵袋
上記Qiitaのサイトの方はsetContentOffsetで頭から表示させることで解決された。
しかし、それだと途中まで読んでページ遷移して戻ってくるとまた頭からの表示になってしまう。
戻ってきたら続きから見たい。
それで悩んだ挙句2chで質問したらアッサリと解決策を提示してもらえた。
「contentOffsetを保持しておいて、viewDidAppearでセットすればいいよ。」
なるほどーって書いたコードがコチラ。
#import "infoViewController.h" CGPoint content; @interface infoViewController () @property (weak, nonatomic) IBOutlet UITextView *infoTextView; @end @implementation infoViewController //中略 -(void)viewDidAppear:(BOOL)animated { [_infoTextView setContentOffset:content animated:NO]; } -(void)viewWillDisappear:(BOOL)animated { content = _infoTextView.contentOffset; } @end
かなり乱暴な気がしますが(^_^;)、これで思ったように動いたのでとりあえずは良しとします。