我想以编程方式创建自定义tableViewCell。
这是我的工作:

  • 创建tableViewCell子类并将其导入到tableViewController
  • 在tableViewController m中:
    - (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;}
    
  • 在CustomCell m中:
    -(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/

    10-09 01:48