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字幕的主要内容,如果未能解决你的问题,请参考以下文章

Xcode tableview 字幕

UIRefreshControl 导致不正确的 TableView 偏移量

javafx 在tableView里插入checkbox

在 TableView 字幕问题中保存当前日期

iOS7 上的 UISearchDisplayController

iOS7上的UITableView分隔符颜色错误