UITableViewCell在调整大小或删除时闪烁

时间:2015-01-17 11:06:21

标签: ios xcode uitableview swift ios8

我正在使用UITableView构建卡片类型布局,“卡片”需要能够调整大小并轻扫以删除它们。我为这两个操作实现了委托调用,调整大小如下:

在实际调整大小的调用之前设置“首选高度”。

//supply card heights to cell
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    //if no cards are in memory put them in memory.
    if (cards == nil){
        populateCardData()
    }
    let card = cards![indexPath.row]
    return card.preferedHeight
}

调整调整大小:

func resizeCardWithIndexPath(inIndexPath: NSIndexPath) {
    //simply reloads the data at the given index path
    shouldAnimate = [inIndexPath:false]//DONT PAY ATTENTION TO THIS(for something else)
    tableView.beginUpdates()//THIS IS THE UPDATE PART
    tableView.endUpdates()
    shouldAnimate = [inIndexPath:true]
}

删除卡片:

 func removeCardWithIndexPath(inIndexPath:NSIndexPath){
    //if no cards are in memory put them in memory.
    if (cards == nil){
        populateCardData()
    }
    //remove card from the array
    cards!.removeAtIndex(inIndexPath.row)
    //delete row from tableview
    tableView.deleteRowsAtIndexPaths([inIndexPath], withRowAnimation: UITableViewRowAnimation.Automatic)
}

现在... 所有这一切都有效。细胞适当调整大小并正确移除细胞。但是当完成调整大小或删除时,有时会非常刺激,其他一些单元格在表视图中移动时会闪烁。

我只是在做一些愚蠢的事情还是有更好的方法? 我做了很多研究并尝试了一些解决方案无济于事。 我确实找到了解决问题的一种方法是使单元格背景为纯色而不透明,这样可以解决闪烁问题,但不是解决方案,因为卡片需要透明边框,因此可以看到背景。

如果有任何人有任何见解帮助将是一个救生员!

0 个答案:

没有答案