0

UIButtonIB に2 つのセルを作成し、サブクラス化しました。再利用しないでどうやって使うの?(小さな固定テーブルの場合)次のようなことを試み RaffleResultCell *cell = [tableView dequeueReusableCellWithIdentifier:nil]; ましたが、それではセルが表示されずUITableView、空白のセルが表示されます。

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
        //Where we configure the cell in each row
        id currentRaffle = [_winnings objectAtIndex:indexPath.row];
        RaffleResultCell *cell = [tableView dequeueReusableCellWithIdentifier:@"raffleResCell"];
        if (cell == nil) {
            cell = [[RaffleResultCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"raffleResCell"];
        }
return cell;
}
4

2 に答える 2

0

IB で UITableViewCell をセットアップすると言いましたが、Nib ファイルを取得して、そのファイルを次のように使用する必要があります。

// Get nib file from mainBundle
NSArray* topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"RaffleResultCell" owner:self options:nil];

    for (id currentObject in topLevelObjects) {
        if ([currentObject isKindOfClass:[UITableViewCell class]]) {
            RaffleResultCell *cell = (RaffleResultCell *)currentObject;
            break;
        }
    }

ボタンのテキストを設定してセルを返す

于 2013-07-24T11:58:35.493 に答える
0

再利用性を避けることは良い習慣ではありません。

再利用はこの行で行われます

RaffleResultCell *cell = [tableView dequeueReusableCellWithIdentifier:@"raffleResCell"];

その行を削除し、チェックループなしで毎回 alloc メソッドを呼び出すだけです

お気に入り

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
       id currentRaffle = [_winnings objectAtIndex:indexPath.row];
       cell = [[RaffleResultCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"raffleResCell"];
       return cell;
}
于 2013-07-24T10:10:40.883 に答える