我有[1, 2, 3, 4]
这样的数组[1, 2, 4]
。
我想实现隐藏并在Dinamic数据中显示UITableViewCell
。但是我得到了获取Array元素的问题。我正在使用for
循环,但它似乎不起作用。在我的代码下面:
var dataChgSort = [ ["sort" : 0 , "chgSort" : [1, 2, 3, 4, 5] ] ,
["sort" : 1, "chgSort" : [1, 2, 3, 4, 5 ] ] ,
["sort" : 12, "chgSort" : [1, 2, 3, 4, 5] ] ,
["sort" : 2, "chgSort" : [1, 2, 3, 4, 5] ] ,
["sort" : 3, "chgSort" : [4, 5] ] ,
["sort" : 4, "chgSort" : [1, 3, 8, 4, 5] ] ,
["sort" : 8, "chgSort" : [3, 8] ] ,
["sort" : 5, "chgSort" : [1, 3, 4, 5] ] ,
["sort" : 6, "chgSort" : [1, 2, 3] ]
]
.....
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
var height: CGFloat = 0
let dataRow = ((self.dataChgSort[index] as [String: Any] )["chgSort"] as! [Int]) /*Dinamic Array int [1, 2, 3] or [1,3] etc*/
self.chgSort = ?????
if indexPath.row == self.chgSort {
height = 0
} else {
height = super.tableView(tableView, heightForRowAt: indexPath)
}
return height
}
答案 0 :(得分:1)
我的理解是,如果您的dataRow
显示" [1,2,4]",那么tableview将显示第1,2和4行的高度。以下是我的检查indexPath.row
出现在所选数组中。
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
let dataRow = ((self.dataChgSort[index] as [String: Any] )["chgSort"] as! [Int]) /*Dinamic Array int [1, 2, 3] or [1,3] etc*/
if dataRow.containse(indexPath.row + 1) {
return super.tableView(tableView, heightForRowAt: indexPath)
}
return 0
}