画面回転をしたあとに、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
関連記事
-
-
CoreDataのソートとsectionNameKeyPathの関係
CoreDataをフェッチするときに、indexPathのsectionにできるsectionNam
-
-
AVAudioPlayerの初回再生遅延
ちょっとした効果音の再生にAVAudioPlayerを使っているのですが、どうも初回の効果音ロードの
-
-
UISplitViewControllerの仕切り線の色を設定
UISplitViewControllerで、iPadを横向き(Landscape)にしたときの2つ
-
-
Bitbucket課題の記法サンプル
Bitbucketの課題、およびwikiで利用できる記法についての記事です。 利用できる記法に
-
-
NSAttributedStringをローカライズする方法
NSAttributedStringをLocalizeするうまい方法はないものかと探したら、これが手
-
-
UIActionSheetが消えるときにキーボード表示/非表示通知が来る
UITextViewやUITextField編集中にアクションシートを表示すると、アクションシート
-
-
”No Scheme”になってしまった場合の対応
知人がXcodeで突然「No Scheme」表示になってRunするターゲットとデバイスが選択できない
-
-
User Defined Runtime Attributeについての覚書
UILabelに上下左右のパディングをつける方法を探して、結局「自分で以下のようなメソッドを持った拡
-
-
UIAlertControllerの取り扱い
旧聞ですが日本語版のStackOverflowが始動したようですね。 個人的な印象は「フィルタされ
-
-
UIButtonのappearanceで派生する色設定
以下のコードでUIButtonのappearanceでBackgroundColorの設定をすると、