在iOS应用中,我们必须先使用表格视图注册nib文件,然后才能使用UITableView#dequeueReusableCellWithIdentifier
。
示例:
static NSString *myReuseIdentifier = @"MyReuseIdentifier";
UINib *cellNib = [UINib nibWithNibName:myReuseIdentifier bundle:nil];
[self.tableView registerNib:cellNib forCellReuseIdentifier:myReuseIdentifier];
有没有办法检查Nib是否已经注册了UITableView?
我有一个自定义单元格,我在我的应用程序中的多个控制器的各种表中使用。我想将一些代码移动到宏。像
这样的东西-(CustomCell *)customCell:(UITableView *)tableView
{
static NSString *reuseIdentifier = @"MyReuseIdentifier";
if (![table hasAlreadyRegisteredNib:reuseIdentifier]){
UINib *cellNib = [UINib nibWithNibName:reuseIdentifier bundle:nil];
[self.tableView registerNib:cellNib forCellReuseIdentifier:reuseIdentifier];
}
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:reuseIdentifier];
return cell;
}
答案 0 :(得分:5)
我不确定你的意图是否是,但
-dequeueReusableCellWithIdentifier:
如果单元格未准备好重用,则返回nil
。否则,它返回单元格,所以你可以试试。
答案 1 :(得分:0)
我认为registerNib:forCellReuseIdentifier:
的重点是减少样板代码。您可以在viewDidLoad
方法中简单地调用一次吗?