主な作業としては以下になります。
- カスタムセルクラスの作成
- Main.storyboardにカスタムセルの適用
- セルのレイアウト
カスタムセルクラスの作成
まずはファイル作成です。- File を選択
- New を選択
- File... を選択
- iOS Source の Cocoa Touch Class を選択
- Class: ArticleTableViewCell と入力
- Subclass of: UITableViewCell を選択
- Also create XIB file: チェックなしのまま
- Language: Swift を選択
- Next を選択
- 他のクラスファイルと同じディレクトリを選択
- Create を選択
これで "ArticleTableViewCell" クラスが作成できました。
次にラベル等の部品用に、IBOutletを定義します。
今回定義したのは3つ。
- dateLbl: 日付用のLabel
- textLbl: テキスト用のLabel
- photoImgView: 写真用のImageView
Main.storyboardにカスタムセルの適用
まずはMain.Storyboardを開きます。Main.Storyboardの画面サイズ設定
最初は、各画面がiPadのようなサイズになっています。
レイアウトするときにイメージしずらいので、iPhoneサイズにしました。
やり方は、ベースになるSplitViewControllerを選択して、Simulated MetricsのSizeで "iPhone 4.7-inch" を選択すると、画面がiPhoneサイズに変わります。
次に定義した3つの部品を配置していく...が、問題発生。
テンプレートで作成したTableViewCellには、始めからLabelが載っていたのだが、そのLabelの位置変更やサイズ調整が効かない、、削除することもできない。。。テンプレートの呪いですね。
そこで思い切ってTableViewCellごと削除して、新たに自分でTableViewCellを追加することにしました。
Cellを新しくすることで、Identifierと詳細画面の遷移が消えてしまうので、追加後元に戻すことに注意します。
これで自由に部品を設置できるようになりました!
引き続きカスタムセルの適用をやっていきます。
今度こそ3つの部品を配置して、画面とクラスを紐付けていきます。
まずは部品をいい感じに配置します。
そしてCellのCustom ClassのClassに、先程作成した "ArticleTableViewCell" を設定します。
そうすると、画面とクラスが紐付きます。
今度はOutletsで、先程定義した3部品を紐付けます。
後は、MasterViewController.swiftに3部品の処理を実装していきます。
実装は UITableViewCell → ArticleTableViewCell に変えていくのと、部品にダミーデータを設定することです。
修正箇所は以下の3メソッドになります。
セルのレイアウト
最後にレイアウトの調整ですね。Main.Storyboardの部品に、実際にテキストや画像を設定しながらやると調整しやすいです。
実機で確認すると、より雰囲気が掴めて楽しいです。
まあ今の段階ではFixせず、ある程度で良いと思います。
実装している内に変更点がいっぱい出てくるので、今はあまり時間を掛けずに実装の終盤でレイアウトを見直します。
0 件のコメント:
コメントを投稿