たけぞうBLOG

iOS,XCode,Cameraなど

iOSアプリ開発 Swift Xcode6

[Swift]Autolayout+UIScrollView上に動的なUITextViewを表示する

投稿日:9月 8, 2015 更新日:

Autolayout+UIScrollView上に動的なUITextViewを表示しようと思ったのですが、なかなか一筋縄ではいかなかったので備忘録

やりたいこと

StoryboardでAutolayoutを有効にしながらUI設定をしつつ、UITextViewの中身は動的に変化する前提で、大量のテキストを表示する際にはスクロールするようにしたい。 \"tableView\" Storyboardではあくまで静的情報をもとに制約を定義するため、サーバーからテキストデータを取得してから、テキスト量に応じてScrollViewのContentSizeの高さを動的に設定するためには下記のような手順に従う必要があるみたいです。(もっと簡単な方法を知っている方がいたら教えて下さい。。)

手順

  1. StoryboardのmainビューにUIScrollViewを追加する
  2. UIScrollViewの中にUIViewを追加する
  3. 2で追加したUIViewにUITextViewを追加する
  4. UITextViewの\”Scroll Enabled\”を無効にする(チェックを外す)
  5. UIScrollViewに(leading,trailing,top,bottom)の4つのconstraintを定義する
  6. 2で追加したUIViewに(leading,trailing,top,bottom)の4つのconstraintを定義する
  7. 2で追加したUIViewに\”width equally\”の制約を定義する
  8. UITextViewに(leading,trailing,top,bottom,height)の5つのconstraintを定義する
  9. UITextViewのheight constraintのIBOutletをViewController.swiftに追加します。 @IBOutlet weak var textViewHeightConstraint: NSLayoutConstraint!
  10. UIITextViewのheight constraintをプログラムで変更します。 self.textViewHeightConstraint.constant = self.textView.sizeThatFits(CGSizeMake(textView.frame.size.width, CGFloat.max)).height

サンプルソース

https://github.com/takezou621/TextViewSample

参考

UITextView inside UIScrollView with AutoLayout link

-iOSアプリ開発, Swift, Xcode6

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Appleから”Special Opportunity 
for an Expedited Apple Watch Order”メールが届きました

今朝Appleから下記のようなメールが届きました。

Xcode4の環境設定

複数ファイルをタブ表示にする 環境設定のGeneral>Double Click NavigationをUses Separate Tabに変更すると、ファイルをダブルクリックしたときにタブで表 …

Xcode4ショートカット

よく使いそうなものだけピックアップ

iOS7のアプリアイコン作成手順まとめ

iOS7に対応したアプリのアイコン作成手順をまとめました。

felloのiOS用サンプルアプリでプッシュ通知を受信するまでの手順

モバイルゲーム開発に必要なプッシュ通知とメッセンジャー機能、分析ツールをSDKで提供するfelloというサービスがリリースされたので、iOSの実機でプッシュ通知を受信するまでの手順をまとめてみました。

プロフィール


1972年神奈川県生まれ。ソフトウェアエンジニアとして生きています。最近はクライアントアプリからサーバーサイドまで幅広くやってます。