我偶尔会在我的故事板中找到copy/pasting
UITableViews
个自定义单元格,这会逐渐成为维护噩梦(即,现在必须对几个{{1}的每个自定义单元格进行简单的更改})。
是否可以在情节提要或UITableViews
文件中创建一个自定义单元格,然后从多个xib
引用它?我认为必须有一种为UITableViews
单元格指定NIB
名称的方法,类似于在编辑时为static/prototype
指定NIB
名称的方式正常UIViewController
。
BTW ......我知道如何通过代码来做到这一点。我正在寻找的是从故事板编辑器本身中做到这一点。
答案 0 :(得分:1)
我知道一种方法,但它确实需要一个自定义类中的一些代码。创建UITableViewCell的子类,从nib加载自身。然后只需将您的单元格类设置为此子类。有关使用从笔尖加载的不同版本替换自身的好方法,请参阅此blog post。
答案 1 :(得分:0)
实际上,您不必创建自定义类。如果您要编写4.0及更高版本的代码,可以使用UINib来创建它。您也可以缓存它以提高性能。
UIViewController.h
@property (nonatomic, retain) UINib *cellNib;
@property (nonatomic, retain) IBOutlet MyCustomTableViewCell *customCell;
UIViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
// Cache the tableviewcell nib
self.cellNib = [UINib nibWithNibName:@"MyCustomTableViewCell" bundle:nil];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"MyCustomTableViewCell";
MyCustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
[self.cellNib instantiateWithOwner:self options:nil];
cell = customCell;
self.customCell = nil;
}
// Set title and such
}
如果不使用ARC,请不要忘记在dealloc中释放它