IOS7上的Tableview字幕
Posted
技术标签:
【中文标题】IOS7上的Tableview字幕【英文标题】:Tableview subtitles on IOS7 【发布时间】:2013-10-30 21:52:56 【问题描述】:我正在尝试为我的表格视图单元格添加字幕,但它们没有显示出来。 哪里错了?
是行
[[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;
【问题讨论】:
这对我来说是正确的。您是否使用了 Storyboard/Xib 文件?确保将单元原型放在那里。 你是说这段代码只显示主标题而不显示每一行的副标题?这是全部在代码中还是你使用原型单元格? 【参考方案1】:这段代码:
if (!cell)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
永远不会执行,因为dequeueReusableCellWithIdentifier: forIndexPath:
保证分配一个新的单元格。
很遗憾,registerClass:forCellReuseIdentifier:
不允许您指定 UITableViewCellStyle
。
将dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath
更改为简单的dequeueReusableCellWithIdentifier:CellIdentifier
。此方法不保证会返回一个单元格。* 如果不是,您的代码将创建一个具有您想要的样式的新单元格。
* - (如果你使用故事板,它会,正如 rdelmar 指出的那样,但这里不是这种情况。)
【讨论】:
“此方法不保证会返回一个单元格”——不一定正确。如果单元格是在情节提要中制作的,则该方法也保证返回一个单元格。 如果你用tableView注册了一个类或nib,它会自动返回它的一个实例,并且cell永远不会是nil。【参考方案2】:- (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;
【讨论】:
答案应包含解决方案的描述。 在 Inspector 视图中为单元格指定一个标识符,并将此代码写入 cellForRowAtIndexPath,其中 cel.detailTextLabel.text 是副标题。【参考方案3】:我遇到了类似的问题,互联网上没有解决方案对我有用。原来我是个白痴。我会发布我的解决方案,以防其他人遇到类似情况。
我假设您正在使用 storyboard,创建了 prototype 并将样式设置为 subtitle
在您的故事板文档大纲中,确保选择原型单元格并选择副标题。见图片:
现在确保标签字体颜色是我们在您的背景上可见的性质!
【讨论】:
【参考方案4】:简单地继承 UITableViewCell 并覆盖
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier;
第一行是
[super initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:reuseIdentifier];
并在表格视图中注册您的单元格类
[tableView registerClass:[YourCellSubclass class] forCellReuseIdentifier:@"YourCellID"];
【讨论】:
以上是关于IOS7上的Tableview字幕的主要内容,如果未能解决你的问题,请参考以下文章
UIRefreshControl 导致不正确的 TableView 偏移量