我正在阅读有关设置UITableViewCell的自定义子类的Apple文档 - Docs
在此示例中,我需要设置一个没有NIB / storyboard文件的自定义单元格。 apple docs提供了一个使用预定义样式并配置但不创建完全自定义布局的示例。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
?我希望有一个完全自定义的布局,这是正确的吗?由于单元格被称为initWithStyle ......?
MESLeftMenuCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if(cell == nil) {
cell = [[MESLeftMenuCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}
然后在cellForRowAtIndexPath
我可以访问出口,即cell.MainLabel.text ...?
答案 0 :(得分:1)
这就是我在自定义类中设置Collection View Cells的方法。我知道你正在使用tableview,但是这让我感动了一段时间所以决定在这里添加。希望它可以帮助你。
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self commonInit];
}
return self;
}
- (id)initWithCoder:(NSCoder *)encoder
{
self = [super initWithCoder:encoder];
if (self) {
[self commonInit];
}
return self;
}
- (void)commonInit
{
// set up your instance
}
要访问该单元格的出口,我只需将插座添加到自定义类的头文件中,您就可以轻松访问它们。
答案 1 :(得分:0)
从iOS 6开始,您不再需要检查出列单元格是否为零。
你会做的如下:
在包含表视图的视图控制器的viewDidLoad方法中,您可以说
[self.tableView registerClass:[MyCellClass class] forCellReuseIdentifier:MyCellIdentifier];
这会导致您的dequeueReusablecellWithIdentifier调用永远不会返回nil。实质上,在后台调用initWithStyle。因此,当覆盖该功能时,你会设置你的东西。