Для изменения ячейки UITableView, у вас есть 2 варианта:
Вариант А (лучший) является использование Autosizing Tableview клеток с Autolayout Ограничений.
Чтобы использовать вариант А, вы должны убедиться, что ваш сотовый contentview имеет четкие верхние & нижних ограничения на все элементы пользовательского интерфейса в его содержимом (см моего изображения здесь) в качестве примера:
Заголовок UILabel имеет верхнее пространство для супервизора (Cell ContentView) и вертикальное расстояние с SubTitle. SubTitle также имеет ограничение нижнего пространства для супервизора (Cell ContentView).
Это позволяет авторизовать ячейку, так как мои элементы пользовательского интерфейса имеют верхние & нижние ограничения для представления содержимого.
Заключительный шаг для того, чтобы Autosizing это установить эти 2 свойства в вашем UITableView:
self.tableView.estimatedRowHeight = 60.0;
self.tableView.rowHeight = UITableViewAutomaticDimension;
Значение estimatedRowHeight
должно быть так близко, как вы можете догадаться, к реальному размеру, это помогает ускорить вычисления немного ,
Опция B - это добавить делегата - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
в ваш UIViewController.
Там вы должны вручную обеспечить высоту ячейки. Если вы используете только 2 различные клетки с 2 фиксированных высотами, вы можете использовать вариант Б, а также и там добавить логику, чтобы обнаружить клетки и вернуть высоту ...
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
if ([cell isKindOfClass:[MyCustomCellTypeAClass class]]) {
return 44;
}
else {
return 100;
}
}
вы можете использовать другую ячейку с dfferent idenifier. – KKRocks
Я знаю, я также делаю это, чтобы сказать, какая ячейка из какого пользовательского класса ячейки. Но я не могу изменить размер ячеек. – user6867907
, пожалуйста, ясно, что вы хотите? если вы пробовали какие-то вещи, то добавьте здесь код. – KKRocks