我正在使用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)
}
现在... 所有这一切都有效。细胞适当调整大小并正确移除细胞。但是当完成调整大小或删除时,有时会非常刺激,其他一些单元格在表视图中移动时会闪烁。
我只是在做一些愚蠢的事情还是有更好的方法? 我做了很多研究并尝试了一些解决方案无济于事。 我确实找到了解决问题的一种方法是使单元格背景为纯色而不透明,这样可以解决闪烁问题,但不是解决方案,因为卡片需要透明边框,因此可以看到背景。
如果有任何人有任何见解帮助将是一个救生员!