【发布时间】:2013-08-26 15:08:14
【问题描述】:
目前我有一个带有自定义 UITableViewCells 的新闻源,例如:
NewsCell.m
NewsCell.xib
NewsCell_Friends.m
NewsCell_Friends.xib
NewsCell_CheckinPhoto.m
NewsCell_CheckinPhoto.xib
[...]
NewsCell_Friends 和 NewsCell_Checkin 都继承自 NewsCell(所有子类共享的方法和元素,如 titleLabel、dateLabel)
目前,我从未使用过 NewsCell 类本身,只使用子类,因为每种新闻都有非常独特的布局 (Xib)。
现在让我们说,我想在我的新闻源的 UI 方面有一个轻量级的实现,其中所有单元格都具有相同的外观、相同的高度、相同的内容:titleLabel 和 dateLabel。 (例如事实上的通知提要)。
我想做的是重用 NewsCell.xib 作为每种新闻的独立版本,例如下面:
NewsCell_CheckinPhoto *cell = [tableView dequeueReusableCellWithIdentifier:@"CheckinPhoto"];
if (!cell){
UIViewController *c = [[UIViewController alloc] initWithNibName:@"NewsCell" bundle:nil];
cell = (NewsCell_CheckinPhoto *)c.view;
cell.parent = self;
}
[cell configureCell:indexPath withNews:news];
return cell;
在 cellForRowAtIndexPath 委托方法中。
请注意,我在此控制器中使用的是 NewsCell xib 而不是 NewsCell_CheckinPhoto xib。
但它不起作用:nib 文件加载良好,NewsCell.xib 的内容在单元格中显示良好,但标签的配置(例如,titleLabel.text = @"Robert 拍了一张照片") NewsCell_CheckinPhoto 类中的内容既不工作也不被调用。
仅当我在 NewsCell.xib 文件中指定类类型 *NewsCell_CheckinPhoto* 时它才有效,但这不允许我重用 NewsCell.xib 来呈现带有示例和唯一表示的 NewsCell 的每个子类。
【问题讨论】:
-
撞到这个线程。暂时没有找到解决办法:(
标签: iphone ios objective-c uitableview