1

スプレッドシートのようなレイアウトを表示するための独自のクラスを作成しました。UITableViewCellsをエンキューおよびデキューしたいと思います。私はこれを行うためにこのコードを使用します:

- (void) enqueueReusableCell: (ABTableViewCell *) cell {    

if (!enqueuedCells[cell.reuseIdentifier])
    enqueuedCells[cell.reuseIdentifier] = cell;
}

- (UITableViewCell *)dequeueReusableCellWithIdentifier:(NSString *)identifier { 
ABTableViewCell *cell;

if (enqueuedCells[identifier]) {
    cell = enqueuedCells[identifier];

    return cell.tableViewCell;
}

return nil;
}

(追加のデータを格納するためにキューに入れるときにUITableViewCellを保持するために使用しているラッパークラスがあります)

問題は、セルをデキューしてサブビューにアクセスしようとしても、何も戻らないことです。次の行は、セルがデキューされた後、nilオブジェクトを返します。

UILabel *label = (UILabel*) [cell viewWithTag:1];

これは、XCode4.5.xでARCを使用しています。何か案は?

完全なソースはここにありますhttps://github.com/AaronBratcher/ABTableView/
(問題を回避するために、デキューは今のところnilを返します)

4

1 に答える 1

0

UITableViewCell をサブクラス化することをお勧めします。UITableViewCell ivar/property を所有するラッパー クラスを持つ利点や意味がわかりません。UITableViewCell をサブクラス化し、拡張プロパティ/機能を追加するだけです。

于 2012-11-28T13:27:38.133 に答える