UITableViewCell indentationLevel在iOS 8中不起作用

Fry*_*Fry 2 objective-c uitableview ios ios8

我有一个UITableView自定义UITableViewCell,我indentationLevel用来移动内容到右边.在iOS 7中一切正常,但在iOS 8中,当我设置indentationLevel > 0表格视图时,不会渲染单元格和界面冻结.唯一的解决方案是退出应用程序.如果我继续调试,我可以看到应用程序使用的内存不断增加,CPU处于99%.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"CustomCellReuseID";
    TreeTableViewCell *cell = (TreeTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    cell.delegate = self;

    FolderSection *aFolderSection = self.dataSourceArray[indexPath.section];
    FolderNode *aFolderNode = (FolderNode *)aFolderSection.folderNodes[indexPath.row];

    cell.indentationWidth = 20.0f;
    cell.indentationLevel = aFolderNode.level;

    // set up the cell

    return cell;
}
Run Code Online (Sandbox Code Playgroud)

想法?

Ber*_*ana 5

在调用缩进配置的方法之前,iOS> 6似乎奠定了Views.将CustomCell.swift中的代码更改为:

override func awakeFromNib() {
    super.awakeFromNib()
    self.indentationWidth = 30.0
    self.indentationLevel = 0
}

override func layoutSubviews() {
    super.layoutSubviews()
    let indentPoints = CGFloat(self.indentationLevel) * self.indentationWidth
    self.contentView.frame = CGRectMake(indentPoints, self.contentView.frame.origin.y,self.contentView.frame.size.width - indentPoints,self.contentView.frame.size.height)
}
Run Code Online (Sandbox Code Playgroud)

适当地打电话给他们.然后在你的cellForRowAtIndexPath中:

...
cell.indentationLevel = 1 // Your indentation level
Run Code Online (Sandbox Code Playgroud)