カスタムセルをxibで作成する。
1)XcodeでNew File…->Cocoa TouchのObjective-C classを選択してNext->UITableViewCellのサブクラスとしてClassを入力してNext->Create
2)XcodeでNew File…->User InterfaceのViewを選択してNext->Device Familyを選択してNext->xibの名称を入力してCreate
3)xibからViewを削除
4)xibにTable View Cellをドロップ
5)xibのClassを1)で作成したクラスにする
6)xibのReuse Identifierを入力
7)xibで幅・高さ設定
8)xibにlabelやimageView等のパーツを配置して、カスタムセルクラスにアウトレット
ViewControllerでtableViewの registerNib: forCellReuseIdentifier: でカスタムセルをレジスターして、
dequeueReusableCellWithIdentifier:forIndexPath: でカスタムセルを生成する。
#import "XXXViewController.h" #import "CustomCell.h" @interface XXXViewController () @property (strong, nonatomic) NSArray *datas; // UITableViewに表示するデータ @end @implementation XXXViewController - (id)initWithStyle:(UITableViewStyle)style { self = [super initWithStyle:style]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { [super viewDidLoad]; // UITableViewに表示するデータ _datas = @[@"January", @"February", @"March", @"April", @"May", @"June", @"July", @"August", @"September", @"October", @"November", @"December" ]; // tableViewにcustomCellのクラスを登録 UINib *nib = [UINib nibWithNibName:@"CustomCell" bundle:nil]; [self.tableView registerNib:nib forCellReuseIdentifier:@"CustomCell"]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } #pragma mark - Table view data source // TableView内のセクション数 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1; } // セクション内の行数(=セル数) - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return _datas.count; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { // 登録したカスタムセルの取得 static NSString *CellIdentifier = @"CustomCell"; CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; cell.label.text = [_datas objectAtIndex:indexPath.row]; return cell; } #pragma mark - Table view delegate // セルがタップされた時 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { // セルの選択状態の解除 [tableView deselectRowAtIndexPath:indexPath animated:YES]; //タップセル取得 UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; // // タップ時の処理を記述 // } @end
0 件のコメント:
コメントを投稿