FULL FUN Logo FULL FUN

初心者のiOS7自習室1

Androidでカスタムセルを作る要領でTableViewを!

IBOutlet、UINibを使う作り方です。※なお、内容は、2014年の1月現在、iOS7&xcode5のものです。

これはstoryboardでセルをマスター登録するものではなく、完全に分離したカスタムセルクラスを作り、storyboard内に取り込んだtableViewに出していく方法。 (android)xmlのカスタムセルをtableViewに組込む (iOS)xibのカスタムセルをtableViewに組込む というイメージです。 【用意するもの】 ・カスタムセルのクラス ・器になるViewControllerクラス ViewControllerがAndroidでいうところのActivityであることに気づくまで、相当難儀してしまった。 カスタムセル.hの内容 #import @interface カスタムセルクラス名 : UITableViewCell @property(nonatomic, retain) IBOutlet UILabel *ラベル名; @end このラベル名の前にあるIBOutletというのは、xib上でUI部品を配置したことで生成しましたという説明。 xibのUI部品をソース上で取り扱えるようにしていくには、xibのドキュメントのようなアイコンの下にあるIdentity and Typeにnameを設定することや→マークの下にあるOutletsに出ている部品名横の丸上をホバーしたときに現れる+マークから、xib上の部品に向かってドラッグするという方法で結びつける。 カスタムセルクラス名.mの内容 #import "カスタムセルクラス名.h" @implementation カスタムセルクラス名 - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; return self; } - (void)setSelected:(BOOL)selected animated:(BOOL)animated { [super setSelected:selected animated:animated]; // Configure the view for the selected state } @end 上記のように作ったセルをデータと結びつけて、テーブルに出力する。 組込みたいクラス名.hの内容 #import @interface 組込みたいクラス名 : UITableViewController @end 組込みたいクラス名.mの内容 #import “カスタムセル名.h” の記述箇所 - (void)viewDidLoad { [super viewDidLoad]; UINib *nib = [UINib nibWithNibName:@“カスタムセル名" bundle:nil]; [self.tableView registerNib:nib forCellReuseIdentifier:@"カスタムセル名"]; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { NSArray *データ名 = [[NSArray alloc]initWithObjects:@"サンプルデータ",@“サンプルデータ2",nil]; static NSString *CellIdentifier = @“カスタムセル名"; カスタムセルクラス名 *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; cell.カスタムセルクラス(hで定義したもの)でつけた部品名.text = データ名:NSArrayのStringデータを指定しました[indexPath.row-1]; if(indexPath.row%2==0){ cell.backgroundColor = [UIColor lightGrayColor]; } } return cell; } これで出ます。 バージョンによって違うのか、これだけのことにものすごく難儀しました。 row-1になっているのは、if文で0番目は固定の見出しを付けてしまったので、データの0番目と差異が出たためです。 その下の偶数セルには着色の部分でも気づく通り、番地の指定を計算するときに括弧つけたり、余計な配慮はいらないようです。

初心者のiOS7自習室2へ進む? ⇒ もちろんGO!