1

UITableViewCellから継承するカスタムクラスがあります。layoutSubviewsを使用してカスタムセルにアイテムを動的に追加する方法を知っていますが、InterfaceBuilderとXIBファイルからデザインしたいかなり複雑なセルがあります。

これを行う方法はありますか?もしそうなら、どのように?私はXCodeを初めて使用するので、詳細を提供するほどよいことを覚えておいてください。:)

助けてくれてありがとう。

4

1 に答える 1

0

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";
于 2011-02-10T05:31:38.663 に答える