0

現在、私は次の方法を持っていますが、うまくいきません...

 - (UITableViewCell *)tableView:(UITableView *)tableView 
         cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *MyIdentifier = @"cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
    if (cell == nil) {
        [[NSBundle mainBundle] loadNibNamed:@"TVCell" owner:self options:nil];
        cell = tvCell;
        self.tvCell = nil;
    }

    UILabel *label;
    label = (UILabel *)[cell viewWithTag:5];
    label.text = [NSString stringWithFormat:@"Hole #%d", indexPath.row];

    return cell;
}

テーブル ビューはエラーなしで作成されますが、個々のセルには何も含まれていませんが、明らかに TVCell.xib には 5 のタグが付いたラベルがあります。私が持っている唯一の質問はこれです。Appleがここで提供するこれらの手順をよく理解していません...

  1. nib ドキュメント ウィンドウで File's Owner を選択し、インスペクタの Identity ペインを開き、File's Owner のクラスをカスタム ビュー コントローラ クラスに設定します。

  2. File's Owner (カスタム サブクラスのプレースホルダー インスタンス) のセル アウトレットを nib-file ドキュメントのテーブルビュー セル オブジェクトに接続します。

これらの手順は次のとおりです ...

誰かが私のような初心者のためにそれらの手順を説明してもらえますか? それが私が台無しにしたことだと思いますが、何か悪いことをした可能性があります。

4

3 に答える 3

1

TcCell が自分の所有物になるとは思いません。セル キューが空の場合は、代わりにこれを試してください。

if (cell == nil) {
    cell=[[NSBundle mainBundle] loadNibNamed:@"TVCell" owner:self options:nil];
}
于 2012-04-06T00:15:47.273 に答える
0

NSBundle メソッドloadNibNamed:owner:options:は、nib ファイルの最上位オブジェクトを含む NSArray を返します。これを試して:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell == nil) {
    NSArray *nibArray = [[NSBundle mainBundle] loadNibNamed:@"TVCell" owner:self options:nil];
    cell = [nibArray objectAtIndex:0];
}
于 2012-04-06T00:23:28.283 に答える
0

あなたが理解できないと言った手順を言葉で説明するのはちょっと難しいです。そのための画像またはビデオを含むチュートリアルを探すことをお勧めします。(私は簡単な検索を行いましたが、利用可能なものはたくさんありますが、それらを詳しく読んでいない限り、あなたを導くために1つを選択したくありませんでした.

ただし、この方法でカスタム テーブル ビュー セルを作成することを好みます

アップルのドキュメントに記載されている方法とは少し異なりますが、多くの人が使用しているのを見てきました。

于 2012-04-06T00:19:23.713 に答える