2015-08-25 3 views
1

Привет друзья Я использую пользовательский UITableViewCell в своем приложении, а ячейка содержит две метки. Когда пользователь нажимает на ячейку, новая ячейка добавляется в нижней части ячейки, чтобы отображать новые функции, но проблема возникает в изображении, когда пользователь снова щелкает по ячейке, чтобы уничтожить расширенную ячейку, а затем изменится местоположение метки.пользовательский UITableViewCell conent неуместен

Так что теперь я не получаю, как получить неуместны эти лейбла ....

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath: (NSIndexPath *)indexPath { [tableView deselectRowAtIndexPath:indexPath animated:NO]; [self cellExpandCollapsewithIndex:(int)indexPath.row]; }
- (void) cellExpandCollapsewithIndex :(int)IndexPathRow { NSDictionary *dic=[self.itemsInTable objectAtIndex:IndexPathRow]; if([dic valueForKey:@"SubItems"]) { NSArray *arr=[dic valueForKey:@"SubItems"]; BOOL isTableExpanded=NO; for(NSDictionary *subitems in arr) { NSInteger index=[self.itemsInTable indexOfObjectIdenticalTo:subitems]; isTableExpanded=(index>0 && index!=NSIntegerMax); if(isTableExpanded) break; } if(isTableExpanded) { [self CollapseRows:arr]; } else { NSUInteger count=IndexPathRow+1; NSMutableArray *arrCells=[NSMutableArray array]; for(NSDictionary *dInner in arr) { [arrCells addObject:[NSIndexPath indexPathForRow:count inSection:0]]; [self.itemsInTable insertObject:dInner atIndex:count++]; } [self.menuTableView insertRowsAtIndexPaths:arrCells withRowAnimation:UITableViewRowAnimationAutomatic]; } } }

+0

Проводка кода может помочь нам решить эту проблему. Прямо сейчас все, что мы можем вам сказать, это то, что что-то не так (что вы уже знаете), так как это в основном вся информация, которую мы имеем. – johnyu

+0

'- (void) CollapseRows: (NSArray *) ar { для (NSDictionary * dInner in ar) {NSARray * arInner = [dInner valueForKey: @" SubItems "]; if (arInner && [arInner count]> 0) { [self CollapseRows: arInner]; } if ([self.itemsInTable indexOfObjectIdenticalTo: dInner]! = NSNotFound) { [self.itemsInTable removeObjectIdenticalTo: dInner]; [self.menuTableView reloadData]; } } } ' – pritam

ответ

0

Может быть нагрузка вещей:

-У установить prepareForReuse() и Init (стиль : reuseIdentifier :) в вашем классе CustomCell?

- используете ли вы стандартные метки для стиля ячейки? Убедитесь, что вы не переписываете метки UITableViewCell по умолчанию: например, titleLable, textLabel, imageView и т. Д.

Возможно, лучше разместите свой код, чтобы люди могли попытаться выяснить, что может быть неправильным.

+0

Нет Я использую собственные ярлыки с именем lblTitle и textLabel – pritam

+0

Используете ли вы ограничения для размещения меток? Попробуйте принудить ограничения или позиции в init. Измените также имя переменной textLabel. –

+0

thanx man ... проблема решена. Это все, потому что я использую имя по умолчанию для своей метки i.e.textLabel – pritam

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