cocoa勉強会#36-iphone os 3.0で変更されたテーブルビュー
TRANSCRIPT
![Page 2: Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー](https://reader030.vdocuments.mx/reader030/viewer/2022032616/55a3977f1a28ab997a8b47c3/html5/thumbnails/2.jpg)
before my presentation
“CoolNotify”•告知ソリューション• 団体ごとにページを用意• 告知内容をWeb設定•そのうち一般公開•サポート予定• アンケート、出欠、拍手
2
![Page 3: Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー](https://reader030.vdocuments.mx/reader030/viewer/2022032616/55a3977f1a28ab997a8b47c3/html5/thumbnails/3.jpg)
before my presentation
“CoolNotify”•告知ソリューション• 団体ごとにページを用意• 告知内容をWeb設定•そのうち一般公開•サポート予定• アンケート、出欠、拍手
2
![Page 4: Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー](https://reader030.vdocuments.mx/reader030/viewer/2022032616/55a3977f1a28ab997a8b47c3/html5/thumbnails/4.jpg)
agenda
•iPhoneでのテーブルビュー•v3.0での変更点
3
![Page 5: Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー](https://reader030.vdocuments.mx/reader030/viewer/2022032616/55a3977f1a28ab997a8b47c3/html5/thumbnails/5.jpg)
iPhoneのテーブルビュー
•表計算式の「セル」ではない• 列の概念を持たないテーブル• セル=行•スクロールする事が当然の機能• 複雑なビュー階層は見えていない•テーブルビュー自体をInterface Builderでサポート• 加えて、セルについてもInterface Builderでサポート
4
![Page 6: Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー](https://reader030.vdocuments.mx/reader030/viewer/2022032616/55a3977f1a28ab997a8b47c3/html5/thumbnails/6.jpg)
テーブルを管理するクラス
•UITableView ← UIView• セルに分かれているが、セルのコンテナを持つ•UITableViewController ← UIViewController• tableViewプロパティ、形式を指定した初期化メソッドが追加されている
• IBではviewから接続することで、tableViewプロパティも参照できる
•UITableViewCell ← UIView• セルそのもののクラス•UITableViewDataSource•UITableViewDelegate ← UIScrollViewDelegate5
![Page 7: Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー](https://reader030.vdocuments.mx/reader030/viewer/2022032616/55a3977f1a28ab997a8b47c3/html5/thumbnails/7.jpg)
データソース
•テーブルに表示するデータを供給するオブジェクト• UITableViewDataSourceプロトコルを組み込んだクラスのインスタンスをテーブルビューに教えておく事で、そこから必要な情報を取り出す
•必須のプロパティ• numberOfRowsInSection/セル数• cellForRowAtIndexPath/1つのセルを返す• テーブルビュー自体のキャッシュの仕組みを使う• その他定義可能なメソッドはたくさんある6
![Page 8: Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー](https://reader030.vdocuments.mx/reader030/viewer/2022032616/55a3977f1a28ab997a8b47c3/html5/thumbnails/8.jpg)
セル
•基本的には生成してやる必要がある• IBで定義もできる→環境設定的な機能の場合•セル内のデータの配置• 自由な配置が可能(UIViewだから)• 決められたスタイルの利用が可能(v3.0で拡大)
7
![Page 9: Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー](https://reader030.vdocuments.mx/reader030/viewer/2022032616/55a3977f1a28ab997a8b47c3/html5/thumbnails/9.jpg)
セルクラスの利用
•iPhone OS 3.0でけっこう変わったところ•deprecatedなプロパティ• text, textAlignment, textColor, lineBreakMode, font, image, selectedTextColor, selectedImage
•なくなった機能はどうする?• テキスト表示はUILabelクラスのtextLabelプロパティ• もう1つのテキストパートはdetailTextLabel• 画像はUIImageViewクラスのimageViewプロパティ•要はビューの集合という考え方を徹底させた8
![Page 10: Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー](https://reader030.vdocuments.mx/reader030/viewer/2022032616/55a3977f1a28ab997a8b47c3/html5/thumbnails/10.jpg)
プログラム例
•UITableViewCell *cell = [...生成と初期化...];• v2.0• cell.text = @"Oh my god!";• v3.0• cell.textLabel.text = @"Shine on me!";• cell.detailTextLabel.text = @"Absolutely!";• return cell;
9
![Page 11: Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー](https://reader030.vdocuments.mx/reader030/viewer/2022032616/55a3977f1a28ab997a8b47c3/html5/thumbnails/11.jpg)
セルの生成•initWithFrameはdeprecated• initWithStyle: reuseIdentifier: を使う• 最初の引数に定数を指定(図セルの順に対応)• UITableViewCellStyleDefault、UITableViewCellStyleSubtitle、
UITableViewCellStyleValue1、UITableViewCellStyleValue2
• textLabel, detailTextView, imageViewの配置に注目
10
![Page 12: Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー](https://reader030.vdocuments.mx/reader030/viewer/2022032616/55a3977f1a28ab997a8b47c3/html5/thumbnails/12.jpg)
その他の話題
•アクセサリビュー• セルの右端にアクセサリ領域を確保• おなじみなものは定数を指定すれば良い• 画像を指定すれば任意の画像を表示•編集機能• テーブルビューの状態としてサポート• コントロールやアクセサリーの切り替えができる• 一般には削除の機能は組み込めるが、中身の変更や追加となると他のユーザインタフェースと組み合わせる必要が出てくる
11
![Page 13: Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー](https://reader030.vdocuments.mx/reader030/viewer/2022032616/55a3977f1a28ab997a8b47c3/html5/thumbnails/13.jpg)
まとめ
•UIKitのテーブルビューの利用方法• iPhone OS 3.0で少しだけセルの利用方法に変化があった
12
![Page 14: Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー](https://reader030.vdocuments.mx/reader030/viewer/2022032616/55a3977f1a28ab997a8b47c3/html5/thumbnails/14.jpg)
書籍のサイトは3.0に完全対応
•iPhoneアプリケーションプログラミング• 新居雅行著/技術評論社刊/¥3,200(税抜き)
13
![Page 15: Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー](https://reader030.vdocuments.mx/reader030/viewer/2022032616/55a3977f1a28ab997a8b47c3/html5/thumbnails/15.jpg)
14