Không có câu trả lời nào ở trên thực sự giải quyết vấn đề một cách chính xác. Lý do là chúng tôi muốn vô hiệu hóa lựa chọn ô nhưng không nhất thiết phải là các cuộc phỏng vấn bên trong ô.
Trong trường hợp của tôi, tôi đã trình bày một UISwitch ở giữa hàng và tôi muốn tắt lựa chọn cho phần còn lại của hàng (trống) nhưng không phải cho công tắc! Do đó, cách làm đúng là trong phương pháp
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
trong đó một tuyên bố của mẫu
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
vô hiệu hóa lựa chọn cho ô cụ thể đồng thời cho phép người dùng thao tác chuyển đổi và do đó sử dụng bộ chọn thích hợp. Điều này không đúng nếu ai đó vô hiệu hóa tương tác của người dùng thông qua
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
phương pháp chỉ đơn thuần là chuẩn bị tế bào và không cho phép tương tác với UISwitch.
Hơn nữa, sử dụng phương pháp
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
để bỏ chọn ô với một tuyên bố có dạng
[tableView deselectRowAtIndexPath:indexPath animated:NO];
vẫn hiển thị hàng đang được chọn trong khi người dùng nhấn vào nội dung ban đầu của ô.
Chỉ hai xu của tôi. Tôi khá chắc chắn nhiều người sẽ tìm thấy điều này hữu ích.