Я создал UITableView
программно, но он имеет дополнительное пространство ниже (29 пикселей, если быть точным).iOS: дополнительное пространство внизу UITableView
Это, как я инициализировать таблицу:
UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
[tableView setTranslatesAutoresizingMaskIntoConstraints:NO];
[self.contentView addSubview:tableView];
self.alertsTableView = tableView;
Ниже приведены ограничения:
@"V:|-10-[_alertsTableView(0)]-5-[_optionsLabel]",
@"H:|-15-[_alertsTableView]-15-|",
Я попытался установить вид колонтитула к нулю и возвращает ноль для его высоты:
[self.tableView setTableFooterView:[[UIView alloc] initWithFrame:CGRectZero]];
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
return CGFLOAT_MIN;
}
Я динамически изменяю его высоту, исходя из содержания:
- (void)updateHeight:(CGFloat)height {
if (self.tableView.superview) {
NSLayoutConstraint *heightConstraint;
for (NSLayoutConstraint *constraint in self.tableView.superview.constraints) {
if (constraint.firstAttribute == NSLayoutAttributeHeight) {
heightConstraint = constraint;
break;
}
}
heightConstraint.constant = height;
}
}
Я также установил setAutomaticallyAdjustsScrollViewInsets
в NO
. И this - это конечный результат. Между ячейкой и пустым пространством существует разделитель, но нижняя часть не является ячейкой.
вы также можете установить footerview используя. table.tableFooterView = [uiview new]; –
Попробуйте кнопку «Иерархия просмотра отладки» - может помочь вам увидеть, какой UIView занимает пространство. – siburb
Можете ли вы поделиться кодом, как вы вычисляете 'height'. Также я бы рекомендовал изменить подход, как вы обновляете ограничение. Вместо выполнения всех ограничений вы можете иметь ivar для ограничения высоты на первом месте и можете напрямую обновить его значение в методе «updateHeight:». – Gandalf