UITableViewCellから継承するカスタムクラスがあります。layoutSubviewsを使用してカスタムセルにアイテムを動的に追加する方法を知っていますが、InterfaceBuilderとXIBファイルからデザインしたいかなり複雑なセルがあります。
これを行う方法はありますか?もしそうなら、どのように?私はXCodeを初めて使用するので、詳細を提供するほどよいことを覚えておいてください。:)
助けてくれてありがとう。
UITableViewCellから継承するカスタムクラスがあります。layoutSubviewsを使用してカスタムセルにアイテムを動的に追加する方法を知っていますが、InterfaceBuilderとXIBファイルからデザインしたいかなり複雑なセルがあります。
これを行う方法はありますか?もしそうなら、どのように?私はXCodeを初めて使用するので、詳細を提供するほどよいことを覚えておいてください。:)
助けてくれてありがとう。
UITableViewController サブクラスで、カスタム セル クラスの IBOutlet を追加します。
@property(nonatomic,retain)IBOutlet UITableViewCell *customCell;
次に、カスタム セル xib で、File's Owner を UITableViewController サブクラスに設定し、最も外側のビューを File's Owner の IBOutlet に割り当てます。プログラムでアクセスするサブビューごとに、そのtag
プロパティに一意の値を割り当てます。カスタム セルに 1、2、3 のタグを付けた 3 つのラベルがあるとします。
最後に、cellForRowAtIndexPath
メソッドで、メソッドを使用してペン先をアウトレットにロードしますloadNibNamed
。これがどのように機能するかの説明については、 API ドキュメントを参照してください。
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
// assuming nib is MyCustomCell.xib
[[NSBundle mainBundle] loadNibNamed:@"MyCustomCell" owner:self options:nil];
// assign IBOutlet to cell
cell = customCell;
// clear IBOutlet
self.customCell = nil;
}
viewWithTag
これで、セルのメソッドを使用して、カスタム セルのタグ付きビューにアクセスできます。
UILabel *label1 = (UILabel *)[cell viewWithTag:1];
label1.text = @"foo";
UILabel *label2 = (UILabel *)[cell viewWithTag:2];
label2.text = @"bar";
UILabel *label3 = (UILabel *)[cell viewWithTag:3];
label3.text = @"baz";