iOSのドキュメントにも記載がありましたがよくわからないまま、とりあえず動きはします。
最初にプロジェクトの作成。
テンプレートは Master-Detail Application を使用します。
とりあえずプロジェクト作成後、一度ビルドと実行をしておきます。
カスタムTableViewCellを作るにはまず空のxibファイルを作成します。
File → New → File... でテンプレート選択画面で User Interface → Empty を選択して保存します。(ファイル名はEditTableViewCellとしました)
できあがったxibファイルに TableViewCell を貼付けます。
合わせて Label と TextField を TableViewCell 内に配置します。
次に、MasterViewController.hに以下を追加
@property (retain, nonatomic) IBOutlet UITableViewCell *editTableViewCell;
次に、EditTableViewCell.xibを開きFile's Ownerを選択します。
Identity inspectorを開きClassで MasterViewController を選択します。
続けれFile's Ownerをcontrolキーを押しながら選択するとOutletsに editTableViewCellが表示されているのでxibファイル内のTableViewCellオブジェクトと関連付けを行います。
MasterViewController.mを開きtableView:cellForRowAtIndexPath:を以下のように修正します。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { [[NSBundle mainBundle] loadNibNamed:@"EditTableViewCell" owner:self options:nil]; cell = editTableViewCell; self.editTableViewCell = nil; } return cell; }
これでカスタムTableViewCellの完成です。
配置してあるLabelやTextFieldに値を入れたりする場合はtagを使用することで操作することができます。
// EditTableViewCellのTextFieldのtagを102とした場合 UITextField *txtField = (UITextField *)[cell viewWithTag:102];
0 件のコメント:
コメントを投稿