代码之家  ›  专栏  ›  技术社区  ›  user6631314

IOS/Swift:使tableview单元格不可选择,但tableview仍然可以在Swift中滚动[duplicate]

  •  -1
  • user6631314  · 技术社区  · 6 年前

    我想使表格视图的单元格不可选择,但仍然允许滚动。当我把

     tableView.isUserInteractionEnabled = false
    

    这在一些答案中是推荐的 viewDidLoad ,它可以防止选择,但也可以防止滚动。

     cell.selectionStyle = .none
    

    在里面 cellforrowatindexpath 如下所示对我没有任何影响。

    public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    
            self.tableView.beginUpdates()
            self.tableView.endUpdates()
    
            if let cell = tableView.dequeueReusableCell(withIdentifier: "myMessageCell", for: indexPath) as? myMessageCell {
                cell.message = messages[indexPath.row]
                cell.selectionStyle = .none
            }
    
            return tableView.dequeueReusableCell(withIdentifier: "myMessageCell", for: indexPath)
        }
    

    提前谢谢你的建议。

    2 回复  |  直到 6 年前
        1
  •  2
  •   Muzahid    6 年前

    希望你在找这个:

    tableView.allowsSelection = false
    
        2
  •  1
  •   Rakesha Shastri    6 年前

    返回 使 你是谁 . 相反,您将另一个单元格出列并返回它,它没有您设置的任何属性。

    public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    
        if let cell = tableView.dequeueReusableCell(withIdentifier: "myMessageCell", for: indexPath) as? myMessageCell {
            cell.message = messages[indexPath.row]
            cell.selectionStyle = .none
            return cell // Return the cell here instead
        }
    
        // return tableView.dequeueReusableCell(withIdentifier: "myMessageCell", for: indexPath) // Return another cell which has none of your properties set.
        return UITableViewCell() // return default cell in case your cell is not dequeued
    }