我正在尝试为我的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;
}
答案 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 ,创建了原型并将样式设置为字幕
在您的故事板文档大纲中,确保选择原型单元格并选择副标题。见图:
现在确保标签字体颜色具有我们在您的背景上可见的性质!
答案 3 :(得分:0)
简单地继承UITableViewCell并覆盖
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier;
第一行是
[super initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:reuseIdentifier];
使用表格视图注册您的单元格类
[tableView registerClass:[YourCellSubclass class] forCellReuseIdentifier:@"YourCellID"];