我希望这些是我问题的充分答案:
不幸的是,要么我在这些评论中看到我的解决方案太过粗心,要么他们没有解决我的问题。
我很固执,因为我相信我应该能够在不创建自定义UITableViewCell的情况下显示详细文本标签,同时通过故事板创建我的界面。默认情节提要原型单元格没有样式选项。同样,我的代码中没有任何地方我实际分配这个单元格而不是在这里;因此,我假设它最初是在故事板中分配给不使用明细文本标签的默认样式。
当我使用以下代码填充单元格时,我的detailTextLabel不会出现:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSLog(@"This is never called!");
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
// Configure the cell...
switch(indexPath.section) {
case 0: // boring cell
cell.textLabel.text = [NSString stringWithFormat:@"Default label"];
cell.textLabel.textAlignment = UITextAlignmentCenter;
break;
case 1: // loading cells based on contents of core data
{
// get some data from previously retrieved core data objects
NSManagedObject *rowObj = [myObjects objectAtIndex:[indexPath row]];
NSDate *someDate = (NSDate*)[rowObj valueForKey:@"timeStarted"];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setTimeStyle:NSDateFormatterNoStyle];
[formatter setDateStyle:NSDateFormatterMediumStyle];
NSString *stringFromDate = [formatter stringFromDate: someDate];
// we have the fields ready; populate the cell
NSLog(@"This prints a valid date:%@", stringFromDate);
// this, also, displays just fine
cell.textLabel.text = [NSString stringWithFormat:@"Default text"];
// this does not appear
cell.detailTextLabel.text = stringFromDate;
break;
}
default:
break;
}
return cell;
}
如果在其他地方已经解决了我的搜索功能,或者如果有关于详细文本标签单元样式的UITableViewCells和故事板的讨论,我提前道歉,但我没有在我的搜索中看到它们。< / p>
具体来说,我需要更改代码以设置样式以使用详细文本标签,同时仍然使用非自定义原型UITableViewCells并保持故事板完好无损?
最后,这可能是完全不相关的(请忽略,如果是),如果我生成许多行,这样我可以向下滚动我的表,我的所有行看起来都很好,除了有几个(取决于我有多快)滚动)与其他(文本对齐)不同。也就是说,据我所知,我看到新单元被分配/初始化没有我在故事板中指定的相同默认设置。注意,下面的initWithStyle代码仍然没有被调用。如果我正确地理解了这一点,那么创建新单元格的幕后工作就会发生,我想知道在哪里可以设置样式首选项。但同样,如果这是一个无关问题的症状,请忽略,如果问题仍然存在,我可以发布另一个问题。
对不起文字墙。
答案 0 :(得分:1)
我找到了解决最高问题的方法;我相信,我问题的最后一段是一个无关的问题。
使用情节提要时,请勿将您的标识符设置为您在代码中使用的标识符;您不会使用故事板中使用的默认单元格类型。通过共享相同的标签,故事板的已识别单元格的属性优先,它看起来像。