You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jun 20, 2023. It is now read-only.
TODOアプリを作ってみようシリーズの第一回目の演習課題のTODOです
内容
UITableViewを利用して、TODOリストを表示します。TODOはコード内にハードコードしたものを用いて、追�加などは行いません。
目的
UITableViewの使い方を理解する。以下のクラスの関係や基本的な使い方を学習することを目的としています。
また UITableViewCellをサブクラス化してカスタマイズも行います
アプリの仕様
以下のTODOをUITableViewを利用して表示します。
長いTODOも折り返して、全文が表示されるようにしてください。
(一部TODOらしくないTODOもあるのはそのサンプルです)
またTODOを表示するセルは以下のレギュレーションに従ってください.
動作イメージ
実装のステップ
tableViewを表示する 6974b40
UITableViewをメインのViewControllerの上に配置し、Autolayoutを設定します。
Autolayoutのpinの仕方は任意ですが、上下左右のマージンを0にするのがベターです。
さらにViewControllerのプロパティとして追加します。
セルを表示する cac9ebf
tableView:numberOfRowsInSection:
はtodoの個数を返しますtableView:cellForRowAtIndexPath
は表示したいセルを返しますカスタムセルの追加 1bd803f a97f4cf
TodoTableViewCellという名前で新しいクラスを追加(xibも同時に作る)
カスタムセルの実装
高さの制御 dc8911b
heightForRowAtIndexPathが全部のセルに対して呼ばれ、cellForRowAtIndexPathが表示のタイミングで呼ばれる
※ iOS8以降の場合はAutolayoutを正しく設定することで自動的に高さを計算してくれる。iOS7以前もサポートする場合は、この高さの計算を行うメソッドを実装する必要があります。
ViewControllerがUITableViewDelegateに準拠するようにして、tableview.delegate = selfにする
プロパティに高さ計算用のセル(offscreenCell)を追加
offscreenCellのサイズを決定
tableViewがレイアウトされたタイミング(
viewDidLayoutSubviews
)でセルの横幅が決まる。ここでoffscreenCellのサイズを決定する。(xibのサイズのままだと画面サイズが変わったときに対応できない)
この時ラベルに
preferredMaxLayoutWidth
を設定する。これをしないと複数行の表示が正しく行われない高さを計算する
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
で各セルの高さを計算して返す手順としては
その他情報
参照する教材
スタートするブランチ
start
※ Main.storyboard の initial view controller を指定し忘れたので、指定してください 😓
ここまでの完成品のブランチ
show-todo
The text was updated successfully, but these errors were encountered: