8

テーブルビュー セルにサブタイトルを追加しようとしていますが、表示されません。間違いはどこですか?

行は [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle] 最新ですか? iOS 7 も使用していますか?

よろしくお願いします

フランク


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    if (!cell)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
    }

    cell.textLabel.text = @"TestA";
    cell.detailTextLabel.text = @"TestB";

    return cell;
}
4

4 に答える 4

5

このコード:

if (!cell)
{
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}

dequeueReusableCellWithIdentifier: forIndexPath:は新しいセルを割り当てることが保証されているため、決して実行されません。

残念ながら、registerClass:forCellReuseIdentifier:を指定することはできませんUITableViewCellStyle

dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath単に に変更しますdequeueReusableCellWithIdentifier:CellIdentifier。このメソッドは、セルが返されることを保証しません。* そうでない場合、コードは必要なスタイルで新しいセルを作成します。


* - (rdelmar が指摘しているように、ストーリーボードを使用している場合はそうなりますが、ここではそうではありません。)

于 2013-10-30T21:58:54.757 に答える
1
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath        *)indexPath {
UITableViewCell *cell = nil;
cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
if (cell == nil)
{ 
 cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"cell"];
}
cell.textLabel.text = @"Title1"; 

cell.detailTextLabel.text = @"Subtitle 1";

return cell;
}
于 2015-10-15T21:38:45.267 に答える
0

UITableViewCell をサブクラス化してオーバーライドするだけです

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier;

最初の行は

[super initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:reuseIdentifier];

セルクラスをテーブルビューに登録します

[tableView registerClass:[YourCellSubclass class] forCellReuseIdentifier:@"YourCellID"];
于 2014-07-03T06:26:18.213 に答える