Swift 3:从UITableView中的Array [Int]获取值

时间:2017-07-11 08:08:43

标签: swift uitableview

我有[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
}

1 个答案:

答案 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
}