Ошибка с UITableView iphone

#iphone #uitableview #cell

#iPhone #uitableview #ячейка

Вопрос:

У меня есть UITableView со строками

 -[self.friendsPhotoArray count] 1

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return [self.friendsPhotoArray count] 1;
    NSLog(@"array val%@",[self.friendsPhotoArray count]);

}
  

Теперь я хочу проверить, какая строка является последней, и сделать ее недоступной для редактирования, т. е. не выполнять
didSelect функция. Кто-нибудь может помочь?

Спасибо.

Ответ №1:

 - (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
  if(indexPath.row==[array count]-1)
  {
    //Do Nothing
  }
  else 
  {
    //Do Whatever You Want
  }
}
  

Ответ №2:

В вашем cellForRowAtIndexPath методе просто установите следующую проверку:

 if (indexPath.row ==  [self.friendsPhotoArray count] 1) {

[cell setUserInteractionEnabled:NO];

}
  

Комментарии:

1. Это индекс вашего последнего элемента. Судя по приведенному вами коду, это [количество self.friendsPhotoArray] 1. Поэтому замените LAST_ELEMENT на это и попробуйте.

2. [self.friendsPhotoArray count] 1 это количество строк, поэтому не должен ли быть indexPath.row [self.friendsPhotoArray count] , чтобы он был последней строкой (индекс на основе 0). Кроме того, если вы кэшируете ячейки, в противном случае вам лучше установить значение YES.

Ответ №3:

сделайте это в виде 2 разделов и попробуйте…повторная загрузка может иногда создавать проблему в последнее время.. создайте один раздел, который вам нужен для выбора, и другой раздел для невыбора

Ответ №4:

 if (indexPath.row ==  [array count] 1) {

    [cell setUserInteractionEnabled:NO];

}
  

Ответ №5:

 -(UITableViewCellEditingStyle)tableView:(UITableView *)aTableView  editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath

{

    if (indexPath.row==yourarray.count-1)
    {
        return UITableViewCellEditingStyleNone;
    }
    else
    {
        return UITableViewCellEditingStyleDelete;
    }
}
  

Ответ №6:

Чтобы отключить выделение для последней строки вашего табличного представления:

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

    // make the cell selection style none 
    }
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

    // if the last row is selected do nothing.
       if(row!=count 1){
           // do functionality
       }
  }
  

Комментарии:

1. Нет, моя проблема в том, что для каждой другой строки мне нужно что-то выполнить в didSelect, но ничего не должно выполняться, если строка становится [self.friendsPhotoArray count] 1