我目前有一个UITableView,它隐藏了不在半径(slider double)
内的单元格。我这样做是通过设置距离然后设置与if语句匹配的单元格的高度为return 0
。然而,这引发了一系列约束错误,我不相信这是最好的方法。
所以我的问题是,是否有更好的清洁和更优雅的方法来实现相同的效果,隐藏细胞结果?
当前身高功能
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if userCurrentLocation != nil {
let cellData = cacheData[indexPath.row]
//let radius: Double = radiusSliderValue
if cellData.distance > radiusData.radiusValue {
return 0
}
}
答案 0 :(得分:3)
更好的方法是在加载tableview之前进行所有距离计算,然后只将有效数据放入tableview工作的不同数组中,这样你才能呈现有效的行
如果在加载了tableview后数据可能会更改,并且您不想重新加载整个表,则可以在tableview上使用pickle
和multiprocessing
来添加新行。