2011-10-17 15 views
11

Łączę ciąg wyszukiwania na podstawie 4 komórek widoku tabeli, każda komórka otwiera widok podz góry i ładuje kilka danych, które użytkownik wybiera, aby ustawić komórkę poprzedniego widoku.jak zrobić unableviewcell nie można wybrać

Istnieje kolejność, w której należy ustawić te komórki, aby każda poprzednia lista danych w widoku podrzędnym była powiązana z zestawem danych w widoku nadrzędnym.

tj. W pierwszej komórce wybierasz typ samochodu, w następnej celce spojrzysz na modele związane z wybranym typem samochodu.

Poza tym Podstawą mojego pytania jest pytanie, w jaki sposób uczynić komórkę nieodbytalną, dopóki nie zostaną ustawione poprzednie komórki.

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

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

} }

Odpowiedz

26

Disallow komórkę śledzenie interakcji:

[cell setUserInteractionEnabled:NO]; 

lub umożliwiają interakcję, ukrywając kolor zaznaczenia, a po kliknięciu, nic nie robić.

[cell setSelectionStyle:UITableViewCellSelectionStyleNone]; 

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

Czy istnieje sposób, aby zmienić kolor komórki aż do jego możliwości, aby go edytować? –

+0

Co masz na myśli, dopóki nie będzie można go edytować? –

+0

to wszystko dobrze .. Rozgryzłem to .. Chodziło mi o to, że istnieje sposób na powiedzenie, że komórka jest jasnoszara, dopóki nie spełni warunku, a następnie zmieni kolor na biały, aby użytkownik wiedział, że może teraz wybrać tę komórkę. ale już to wymyśliłem ... więc wszystko dobrze teraz: P –

2

Swift Składnia

cell.selectionStyle = UITableViewCellSelectionStyle.None 
+0

To nie czyni go niemożliwym do wybrania; tylko UIKit nie wyrenderuje żadnego podświetlenia po dotknięciu. 'didSelectRow ...' nadal będzie wywoływany. –

Powiązane problemy