2012-06-22 3 views
2

Итак, у меня есть подклассы UITableView, в которых перечислены данные. Мне нужно сделать только одну ячейку.Возможность использовать только один элемент в UITableView

- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
// rows in section 0 should not be selectable 
    UITableViewCell *cell = (UITableViewCell *)[tableView cellForRowAtIndexPath:indexPath]; 
if (indexPath.row == 3) { 
    cell.userInteractionEnabled = YES; 
    cell.selectionStyle = UITableViewCellSelectionStyleGray; 
    NSLog(@"Hey whats up, address"); 
    return indexPath; 
} 
else { 
    cell.selectionStyle = UITableViewCellSelectionStyleNone; 
} 
    return nil; 
} 



- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 


[tableView deselectRowAtIndexPath:indexPath animated:YES]; 
} 

Мой код, который делает это до сих пор, работает, но только после того, как ячейка щелкнула хотя бы один раз. Размещение в didSelectCell позволяет выбрать ячейку, если удерживать ее нажатой в течение 1-2 секунд.

ответ

3

Вы должны сделать это в cellForRowAtIndexPath. Как это:

-(UITableViewCell*)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 

// your code 
if(indexPath.row != 3) 
{ 
    [cell setSelectionStyle:UITableViewCellSelectionStyleNone]; 
{ 

} 

а затем на didSelectRowAtIndexPath:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 
    if(indexPath.row == 3) 
    { 
     //do your stuff 
    { 

} 
Смежные вопросы