#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