たけぞう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

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

関連記事

視力チェック サポートページ

ありがとうございます。 AppStore総合無料最高ランキング5位! すでに12万人以上の方にご利用頂いております。

Xcode4の環境設定

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

Xcode4ショートカット

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

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

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

【iOS】Audio Queue

Audio Queue とは? 音声の記録、再生を行うために使用するソフトウェアオブジェクトのこと AudioQueueRefで表現され、AudioQueue.hに宣言されている 全コーデックを取り扱 …

プロフィール


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