Khi bạn chạm vào một ô, hàng đó sẽ được chọn và đánh dấu. Bây giờ những gì tôi muốn làm là vô hiệu hóa đánh dấu nhưng cho phép lựa chọn. Có cách nào để giải quyết vấn đề này nhưng nó vô hiệu hóa cả lựa chọn và đánh dấu.
Câu trả lời:
Bạn chỉ có thể đặt kiểu lựa chọn của ô thành "Không có" từ Bảng phân cảnh:
Hoặc từ mã:
cell.selectionStyle = UITableViewCellSelectionStyleNone;
Đối với Swift 3:
cell.selectionStyle = UITableViewCellSelectionStyle.none
Đối với Swift 4 trở lên:
cell.selectionStyle = .none
Thay đổi UITableViewCell
của selectedBackgroundView
màu sắc để minh bạch.
let clearView = UIView()
clearView.backgroundColor = UIColor.clearColor() // Whatever color you like
UITableViewCell.appearance().selectedBackgroundView = clearView
hoặc để đặt cho một ô cụ thể:
cell.backgroundView = clearView
cell.selectionStyle = UITableViewCellSelectionStyleNone
đôi khi phá vỡ một cái gì đó sâu bên trong logic hoạt hình của Táo khuyết.
UITableViewCell.appearance().selectionStyle = .None
awakeFromNib()
chức năng công trình một điều trị
nhanh chóng 3
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
}
Để thêm màu tùy chỉnh, hãy sử dụng mã dưới đây. Và để làm cho nó minh bạch, hãy sử dụngalpha: 0.0
cell.selectedBackgroundView = UIView(frame: CGRect.zero)
cell.selectedBackgroundView?.backgroundColor = UIColor(red:0.27, green:0.71, blue:0.73, alpha:1.0)
Nếu bạn sử dụng màu tùy chỉnh và muốn tạo cho nó một góc tròn, hãy sử dụng:
cell.layer.cornerRadius = 8
Ngoài ra, hãy sử dụng cái này để có hình ảnh động và cảm nhận tốt hơn
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
}
Đối với objc:
[cell setSelectionStyle: UITableViewCellSelectionStyleNone];
- (void)viewDidLoad {
[super viewDidLoad];
_tableView.allowsSelection = YES;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
.. .. .. ..
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
. . . . ..
}
Đối với Swift 5 , cách tốt nhất là:
cell.selectionStyle = .none
Đây là giải pháp cho swift 3, hoạt động ngay cả trong chế độ chỉnh sửa
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
}()
cell.selectionStyle = UITableViewCellSelectionStyleNone;
thêm điều này vàocellForRowAtIndexPath
phương pháp của bạn