IOS7上的Tableview字幕

时间:2013-10-30 21:52:57

标签: ios objective-c uitableview ios7

我正在尝试为我的tableview单元格添加一个副标题,但它们不会显示。 错误在哪里?

是行 [[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 个答案:

答案 0 :(得分:5)

此代码:

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

永远不会执行,因为dequeueReusableCellWithIdentifier: forIndexPath:可以保证分配新的单元格。

不幸的是,registerClass:forCellReuseIdentifier:不允许您指定UITableViewCellStyle

dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath更改为dequeueReusableCellWithIdentifier:CellIdentifier。此方法不保证将返回单元格。*如果不是,则您的代码将创建一个具有所需样式的新单元格。


* - (如果你正在使用故事板,就像rdelmar指出的那样,但在这里并非如此。)

答案 1 :(得分: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;
}

答案 2 :(得分:0)

我遇到了类似的问题,互联网上没有任何解决方案适合我。事实证明我是个白痴。我会发布我的解决方案,只是让别人遇到类似的情况。

我假设你正在使用 storyboard ,创建了原型并将样式设置为字幕

在您的故事板文档大纲中,确保选择原型单元格并选择副标题。见图:

enter image description here


现在确保标签字体颜色具有我们在您的背景上可见的性质!

答案 3 :(得分:0)

简单地继承UITableViewCell并覆盖

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

第一行是

[super initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:reuseIdentifier];

使用表格视图注册您的单元格类

[tableView registerClass:[YourCellSubclass class] forCellReuseIdentifier:@"YourCellID"];