2016-12-12 1 views
0

У меня есть UITableView внутри UITableViewCell, закрепленный на всех четырех сторонах. Я хочу изменить высоту UITableView на основе количества ячеек, которые у нее есть. Для этого я подклассифицировал UITableViewCell (name-TableCell). Внутри него, я использую этот код для обновления высоты Tableview .:Как изменить высоту UItableView внутри UITableViewCell на основе количества ячеек в UITableView

-(void)layoutSubviews{ 

    [super layoutSubviews]; 

    if ([self.data count] <= 5) { 
     self.tableHeightConstraint.constant = ([self.data count]) * 44.0f; 
    } else { 
     self.tableHeightConstraint.constant = 5 * 44.0f; 
    } 
} 

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

Это правильный способ изменения высоты? Пожалуйста, помогите!

Edit 1:

Я вставка и удаление ячеек во время выполнения. Вставляемая ячейка имеет табличный вид, размер которого динамический, основанный на количестве ячеек. Когда я вставляю (включая приведенный выше код), вставка верна. Но когда я удаляю, ячейка (имеющая uitableview) все еще видна. Когда я прокручиваю ячейку из экрана, тогда она становится невидимой. Незлая помощь!

ответ

1

Если у вас есть табличный вид внутри tableViewCell, прикрепленный ко всем сторонам ячейки (внизу, влево, вправо, вверху), и у него нет высокого приоритета обложения содержимого, вы можете установить высоту ячейки в внешний Tableview в:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 

внутренний TableView будет растягиваться, так как это возлагали ограничения

+0

Я попробовал ваш метод, но это не решило проблему. – crypt