尝试在我的应用程序中实现可扩展单元时遇到很多问题。目前的问题是,尽管我的代码可以按预期方式扩展和折叠单元格,但它显示了在滑动删除内容时应隐藏的内容,这看起来很糟糕。
另一个问题是,当我点击导航按钮以从表视图中分离时,其中一个单元会展开。同样,在点击一个单元格时,似乎会松开顶部的分隔线,直到轻按另一个单元格为止。 (这些问题较小。提到的第一个问题较大。)
这是我在didSelectRowAtIndexPath中的代码:
var selectedRowIndex: NSIndexPath = NSIndexPath(forRow: -1, inSection: 0)
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
selectedRowIndex = indexPath
tableView.beginUpdates()
tableView.endUpdates()
}
这是我在heightForRowAtIndexPath中的代码:
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
cellHeight = 68
if tableView != self.searchDisplayController?.searchResultsTableView {
if indexPath.row == selectedRowIndex.row {
if cellTapped == false {
cellTapped = true
cellHeight = 141
return 141
} else {
cellTapped = false
cellHeight = 68
return 68
}
}
}
return 68
}
在cellForRowAtIndexPath中:
if cellHeight == 141 {
cell.notesLabel.hidden = false
println("False")
} else if cellHeight == 68 {
cell.notesLabel.hidden = true
println("True")
}
目前,此代码似乎使cell.notesLabel始终隐藏,因为在点击单元格时似乎未调用cellForRowAtIndexPath。
有没有人对此问题有解决方案或更好的实施方案?我敢肯定,必须有一种更简单的方法。
最佳答案
我会考虑研究自动调整大小的单元格。
tableView.estimatedRowHeight = 44.0
tableView.rowHeight = UITableViewAutomaticDimension
随着内容的更改,您必须重新加载单元并为其设置动画,但是我认为使用以下方法将是更好的实现:
reloadRowsAtIndexPaths(_ indexPaths: [AnyObject], withRowAnimation animation: UITableViewRowAnimation)
听起来您的手势很多,这可能是导致问题的原因。对于可拖动的单元格,请确保是平移手势正在更改其偏移量的contentView,或者如果您在视图中具有所有单元格的内容,请确保将其应用于该视图。
关于ios - 滑动删除即可显示应隐藏在单元格中的标签,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26393561/