2011-10-17 20 views
11

Tôi đang đặt cùng một chuỗi tìm kiếm dựa trên tableviewcells 4, mỗi tế bào sẽ mở ra một subview và tải một loạt các dữ liệu người dùng chọn để thiết lập các tế bào của xem trước đó.làm thế nào để làm cho một uitableviewcell không thể chọn

Có một thứ tự mà trong đó các ô này cần được đặt để mỗi danh sách dữ liệu trước đó trong chế độ xem phụ có liên quan đến tập dữ liệu trong chế độ xem gốc.

tức là trong ô đầu tiên bạn chọn một loại ô tô, trong ô tiếp theo bạn xem các kiểu liên quan đến loại xe được chọn.

Điều đó sang một bên Cơ sở của câu hỏi của tôi là làm cách nào để tạo ô không thể chọn cho đến khi các ô trước đó được đặt.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
//... 
if (indexPath.section == 0) 
    { 

if (indexPath.row == 0) // <<--- what could I put in here.... 
     { 
//... 
} 

}}

Trả lời

26

Không cho phép các tế bào để theo dõi bất kỳ sự tương tác:

[cell setUserInteractionEnabled:NO]; 

hoặc cho phép tương tác, ẩn màu sắc lựa chọn, và khi nhấn vào, không làm gì cả.

[cell setSelectionStyle:UITableViewCellSelectionStyleNone]; 

- (void) tableViewDidSelectRow.... { 
    if(indexPath.row == indexOfCellWithNoUserInteraction) { 
     //do nothing 
    } 
} 
+0

Có cách nào để thay đổi màu sắc của tế bào cho đến khi có thể của nó để chỉnh sửa nó? –

+0

Ý của bạn là gì cho đến khi có thể chỉnh sửa nó? –

+0

tất cả đều tốt .. Tôi đã hiểu nó .. Điều tôi muốn nói là có một cách để nói có một màu xám nhạt cho đến khi nó đáp ứng một điều kiện sau đó nó chuyển sang màu trắng để người dùng biết bây giờ họ có thể chọn ô này. Nhưng đã tìm ra .. vì vậy tất cả đều tốt đẹp: P –

2

Swift Cú pháp

cell.selectionStyle = UITableViewCellSelectionStyle.None 
+0

Điều đó không làm cho nó không thể chọn được; chỉ UIKit sẽ không hiển thị nổi bật khi khai thác. 'didSelectRow ...' sẽ vẫn được gọi. –

Các vấn đề liên quan