ios - tableview展開 - xcode uitableview




禁用uitableview突出顯示,但允許選擇單個單元格 (8)

當您點擊一個單元格時,該行將被選中並突出顯示。現在我想做的是禁用突出顯示但允許選擇。周圍有一種方法。有一個問題可以回答這個問題,但它同時禁用了選擇和突出顯示。


嘗試將單元格選擇樣式設置為“無”-

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

這將解決您的問題


UITableViewCellselectedBackgroundView 顏色更改為透明。

    let clearView = UIView()
    clearView.backgroundColor = UIColor.clearColor() // Whatever color you like
    UITableViewCell.appearance().selectedBackgroundView = clearView

或設置特定的單元格:

cell.backgroundView = clearView


對於 Swift 5 ,最好的方法是:

cell.selectionStyle = .none

您可以在情節提要中設置單元格本身的選擇屬性


要添加自定義顏色,請使用以下代碼。 為了使其透明,請使用 alpha: 0.0

cell.selectedBackgroundView = UIView(frame: CGRect.zero)
cell.selectedBackgroundView?.backgroundColor = UIColor(red:0.27, green:0.71, blue:0.73, alpha:1.0)

如果您使用自定義顏色並希望將其設置為圓角,請使用:

cell.layer.cornerRadius = 8

另外,使用它可以獲得更好的動畫效果

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    tableView.deselectRow(at: indexPath, animated: true)
}

這是即使在編輯模式下也可以快速運行3的解決方案

cell.selectionStyle = .gray
cell.selectedBackgroundView = {

    let colorView = UIView()
    colorView.backgroundColor = UIColor.black.withAlphaComponent(0.0)
    //change the alpha value or color to match with you UI/UX

    return colorView
}()

對於Swift:

UITableViewCell.selectionStyle = UITableViewCellSelectionStyle.None;

或者,當您快速子類化一個單元格時:

class CustomCell : UITableViewCell {

    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)!
        selectionStyle = .None
    }

}

對於那些在Swift 3中尋找編程方式的人

cell.selectionStyle = UITableViewCellSelectionStyle.none





uitableview