2012-02-21 3 views
4

私のTableViewを廃止予定のinitWithFrame:reuseIdentifier:から更新したいと思います。initWithFrameとinitWithStyle

私のテーブルビューはカスタムセルを使用します。

どこでもinitWithStyle:を使用すると言いますが、動作やセルはいかなる形でもinitWithFrame:CGRectZero reuseIdentifier:から変更されません。

私がinitWithStyle:UITableViewCellStyleDefault reuseIdentifier:でビルドしているとき、セルは空白になります(つまり、カスタムセルは機能しません(何らかのスタイルで初期化されていますか?))。

セルが初期化された後(デキューされなかった場合)、セルにテキストを設定します。しかし、これはinitWithStyle:reuseIdentifier:を使用すると設定されませんが、initWithFrame:CGRectZeroと動作します。使用されるinitメソッド(initWithStyle)を除いて、コードは変更されません。

セルが作成(または再利用)された後、これらの行は入れ:中

cell.newsItemNameLabel.text = @"test"; 
NSLog(@"NewsItemName: %@",cell.newsItemNameLabel.text); 

結果 "NewsItemName:(ヌル)"

誰もがアイデアを持って?両者の本当の違いは何ですか?

CustomCellカスタムセルのクラスの名前です
- (CustomCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"CellIdentifier"; 

    CustomCell *cell = (CustomCell *)(UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     cell = [[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
    } 

    // Configure the cell. 
    cell.textLabel.text = NSLocalizedString(@"Detail", @"Detail"); 
    return cell; 
} 

を:

cellForRowAtIndexPath

+1

私はあなたのクラスの多くを投稿する必要があるかもしれないと思います。 – picciano

答えて

3

あなたの実装は次のようになります。ありがとうございます。この実装では、ARC(Automatic Reference Counting)が使用されています。この機能を使用しない場合は、セルの割り当てにautoreleaseコールを追加します。

CustomCellさんinitWithStyle実装:

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
{ 
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if (self) { 
     //do things 
    } 
    return self; 
} 
+0

ああ!今私は馬鹿だと感じる。私はあなたの2番目の編集を見たときに、もちろんCustomCellのメソッドも変更されていることに気付きました!本当にありがとう、私はあなたにはっきりとupvoteことはできませんので、私は任意の評判を持っていないが、私は霊的にあなたに愛のヒープを送信します。 – Ostmeistro

+0

私はそれを記述したとおりにしますが、カスタムセルは初期化されません。私の人生は何が間違っているのか理解できません。 Fscheidl、あなたに私のプロジェクトを電子メールで送ることができると思いますか? – Michael

+0

確かに、私はそれを調べることができます - 私はちょうど私の電子メールアドレスをオンラインで投稿するのが快適ではない。どのように私にあなたのプロジェクトを送りますか? – fscheidl

関連する問題