Blog > Komentarze do wpisu
Programowanie iPhone – UITableiew blokowanie wierszy tabeli

 

Jednym ze sposobów uniemożliwienia użytkownikom naszej aplikacji wyboru jednego lub więcej wierszy tabeli (UITableView) jest implementacja w delegacie UITableViewDelegate metody tableview:willSelectRowAtIndexPath:. Wiersze, dla których metoda zwróci wartości nil będą „niewybieralne”.

 

-(NSIndexPath*)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath {

   BOOL isRowSelectable = TRUE;  //domyslnie mozna wybrac wiersz
   //sprawdz czy wiersz moze byc wybrany czy nie
   
   //...
   
   if (isRowSelectable) {
      return indexPath;
   }
   
   return nil;
   
}

 

Warto też w metodzie (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath ustawić, dla wierszy których nie można wybrać parametr selectionStyle na UITableViewCellSelectionStyleNone:

 

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
   
   //...

   cell.selectionStyle = UITableViewCellSelectionStyleNone;
   return cell;
}

 

Opcjonalnie można również ustawić właściwość wiersza userInteractionEnabled na NO;

 

cell.userInteractionEnabled = NO;

 

Dzięki temu unikniemy chwilowego zmiany koloru komórki na niebieski w momencie gdy użytkownik na niej „tapnie”. Można tez pokusić się o stworzenie kategorii rozszerzającej możliwości klasy UITableViewCell.

czwartek, 11 lipca 2013, m0rt1m3r

Related Posts Plugin for WordPress, Blogger...

Polecane wpisy





PowerBuilder Tetris
D - Tetris



Programowanie iOS

C# ToolBox

SQL / TSQL / PLSQL ToolBox

Linux / Unix ToolBox





Zaprzyjaznione Strony

Sprite Bandits

Cake Time