画面回転をしたあとに、UITextViewの先頭を表示する
公開日:
:
最終更新日:2019/09/17
Tips UITextView, Xcode
回転によりサイズが可変するUITextViewで、縦向き(ポートレイト)から横向き(ランドスケープ)にすると、TextViewが縮んでしまうレイアウトになっているとき、表示される部分がテキストの中央部になっているっぽい挙動をして、それはちょっと困るなぁということで、setContentOffsetで先頭を表示させようとしたんですが、はたしていったい何のメソッドで検知すればいいのか・・・ということで途方にくれてました。
結論だけ書くと、viewWillTransitionをoverrideして、coordinator.animateをその中で実行し、completionブロックに必要な処理を書くことで解決しました。以下のようなコードになります。
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
coordinator.animate(alongsideTransition: nil) { _ in
self.textView.setContentOffset(.zero, animated: false)
}
}
参考サイト
iOS: How to run a function after Device has Rotated (Swift) – Stack Overflow
関連記事
-
-
NSAttributedStringをローカライズする方法
NSAttributedStringをLocalizeするうまい方法はないものかと探したら、これが手
-
-
preferredContentSizeをUINavigationContorllerのPop時に再設定する
popoverで表示しているViewControllerのサイズを、他のViewController
-
-
メソッドの呼び出し元を調べる
特定のメソッドに関して、そのメソッドをコールしているメソッド群を調べるための手順。 (1)調べたい
-
-
バージョンアップ版があることを通知する
拍子抜けするほど簡単だったので、「アプリのバージョンアップの通知をどうするか」という話についてTip
-
-
CALayerの管理
CALayerはNSKeyValueCodingを実装している(Core Animation Ext
-
-
UIActionSheetの文字がブレて多重表示される
UIActionsheetを使っていて、iOS7/iPadの組み合わせで起こる不具合らしき挙動が起こ
-
-
コードでiPhone6 Plusを識別する簡単な方法
表題の通り、コードでiPhone6 Plusを識別する簡単な方法です。 iPhone6 Plu
-
-
UIButtonのLocalizeに関するTips
Storyboardに設置したUIButtonのタイトルのLocalizeをしてたのですが、英語では
-
-
iOS9でのNSFetchedResultsContollerDelegateの挙動
ハマったので短いながらメモしたいと思います。 NSFetchedResultsContollerD
-
-
HTMLParserを修正する
HTMLスクレイピングしてる時に役立つライブラリであるObjective-C-HMTL-Parser
