2013-08-12 26 views
6

Tôi đã xem bảng với một số ô. Mỗi ô cũng chứa một nút. Khi người dùng nhấp vào nút, ô sẽ không thể nhấp được, nhưng không phải nút. Vì vậy, khi người dùng nhấp vào nút của một ô không thể nhấp được, ô này có thể nhấp lại được.Làm cho ô không thể nhấp được, nhưng một nút trên đó vẫn có thể nhấp được

tôi đã cố gắng:

cell.userInteractionEnabled = NO; 

... nhưng sau đó nút là không thể nhấp nữa.

Nhờ nỗ lực của bạn trước.

EDIT Ý tôi là: Khi tôi nhấp vào ô, chế độ xem mới sẽ mở ra. Nhưng tôi muốn, rằng không có hành động nào xảy ra, khi ô không phải là "có thể nhấp".

+0

Cố gắng thiết lập 'userInteractionEnabled' trên điều khiển riêng. –

+0

@MarcusAdams Nhưng làm thế nào tôi có thể làm điều này? – user2650439

Trả lời

14

Không thể nhấp vào theo cách nào? Nếu bạn chỉ muốn các tế bào không được lựa chọn, bạn có lẽ tìm kiếm này:

cell.selectionStyle = UITableViewCellSelectionStyleNone; 

Nếu bạn muốn ngăn chặn mã của bạn được thực hiện khi lựa chọn bị vô hiệu hóa, chỉ cần kiểm tra cho các tài sản lựa chọn bên didSelectRowAtIndexPath: của bạn phương pháp. Một cái gì đó như thế này:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
    if (cell.selectionStyle != UITableViewCellSelectionStyleNone) { 
     //(your code opening a new view) 
    } 
} 

Hãy nhớ rằng, bạn vẫn phải chơi với khách sạn này, thiết lập để UITableViewCellSelectionStyleNone khi bạn không muốn các tế bào để được lựa chọn và thiết lập trở lại UITableViewCellSelectionStyleBlue (hoặc UITableViewCellSelectionStyleGray) khi bạn muốn nó để có thể chọn lại.

+0

+1 để sử dụng bộ giải mã. –

+0

Nhưng tôi vẫn có thể nhấp vào ô và khung nhìn mớiController mở ra ... sự khác biệt duy nhất tôi nhận ra là màu của chúng không được chọn khi ô được chọn ... hoặc tôi nhận được lỗi ở đây – user2650439

+0

Đã chỉnh sửa. Hãy thử xem nó có giúp ích không. –

0

Xóa lựa chọn bằng cách đặt UITableViewCellSelectionStyleNone làm selectionStyle.

cell.selectionStyle = UITableViewCellSelectionStyleNone; 

Và làm gì trong -tableView:didSelectRowAtIndexPath:

Bạn có thể chọn lọc trong đó phương pháp đại biểu ví dụ nếu chỉ hàng đầu tiên trong phần đầu tiên có nút và nên làm gì:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSIndexPath *indexPathForDisabledCell = [NSIndexPath indexPathForRow:0 
                   inSection:0]; 
    if([indexPath compare:indexPathForDisabledCell] != NSOrderedSame) { 
     //Do whatever you do with other cells 
    } 
} 
Các vấn đề liên quan