我想以编程方式创建自定义tableViewCell。
这是我的工作:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *CellIdentifier = @"StoreCell";
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if (cell == nil) {
cell = [[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
return cell;}
-(id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
NSLog(@"Hello!");
}
return self;
}
(对不起,代码突出显示功能无法正常工作)
我的问题是CustomCell没有初始化。 initWithStyle永远不会被触发。我遵循了一些教程,它们做的完全相同,但是成功。
最佳答案
在iOS 6中,dequeReusableCellWithIdentifier:forIndexPath:始终返回一个单元格,因此永远不会调用if-case。
如果具有该标识符的单元格不可用,它将自己对其进行初始化。
尝试在UITableViewCell子类中实现initWithCoder:,在这种情况下就是这样。
关于objective-c - UITableViewCell子类未初始化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12856858/