如何将uitableviewcellselectionstyle.none设置为静态单元格?

时间:2016-05-13 00:18:33

标签: swift uitableview

对不起,我真的无法在任何地方找到它。

我需要将我的选择样式设置为none,这样当我点击它时行不会突出显示。此外,我需要行可选择,因为我有一些行需要扩展和折叠。我知道这段代码是UITableViewCellSelectionStyle.None,但我不知道我可以在哪里实现它。谢谢!

编辑添加代码

        // MARK: - Table view data source
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    // #warning Incomplete implementation, return the number of sections
    return 1
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    // #warning Incomplete implementation, return the number of rows
    return 7
}

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {

    // Set height for date picker

    if indexPath.section == 0 && indexPath.row == 2 {
        let height:CGFloat = datePicker.hidden ? 0.0 : 216.0
        return height

    }

    return super.tableView(tableView, heightForRowAtIndexPath: indexPath)
}

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

    // Expanding and collapsing date picker
    UITableViewCellSelectionStyle.None

    let datePickerIndexPath = NSIndexPath(forRow: 1, inSection: 0)
    if datePickerIndexPath == indexPath {

        datePicker.hidden = !datePicker.hidden

        UIView.animateWithDuration(0.3, animations: { () -> Void in
            self.tableView.beginUpdates()
            // apple bug fix - some TV lines hide after animation
            self.tableView.deselectRowAtIndexPath(indexPath, animated: true)
            self.tableView.endUpdates()
        })
    }
}

代码主要用于我实施的日期选择器。一切正常,但单击单元格会突出显示默认选择颜色的整行。

4 个答案:

答案 0 :(得分:1)

很难知道在哪里可以最好地实现它而不会看到您的代码,但是当您将单元格出列/初始化时,您绝对可以将它放在cellForRowAtIndexPath中。只需在yourCell.selectionStyle = .None

之前致电return yourCell

答案 1 :(得分:0)

cell.selectionStyle = .None

当您在相等(=)之后编写代码时,只需按下点(。),这样就会弹出很多类型的功能 -

enter image description here

对于你的第二个问题,只需在数组中加入一些值来检查它是否正常工作。

答案 2 :(得分:0)

我遇到了同样的问题,对我来说解决方案是:

  • self.tableView.allowsSelection = true
  • 在情节提要中,手动选择所有静态单元格并将选择从“默认”更改为“无”
  • 对于那些允许选择的单元格,将选择更改为“默认”。

似乎只能选择某些单元格。 您仍然可以通过检查indexPath来处理didSelectRowAt中那些专用单元格的选择。

希望有帮助。

答案 3 :(得分:0)

只是找到了一种以编程方式插入静态单元格的选择样式设置的方法,而不是使用情节提要:

在viewWillAppear中,使用:

    tableView.cellForRow(at: yourIndexPath1)?.selectionStyle = .none
    tableView.cellForRow(at: yourIndexPath1)?.selectionStyle = .none
...