Я перетащил табличный вид в свою сцену сценарной сцены, но его высота статична и не будет корректироваться в зависимости от количества ячеек, которые она содержит, если я не вручную ее отрегулирую в раскадровки. Как я могу заставить эту таблицу отрегулировать свою собственную высоту в зависимости от общей высоты ее содержимого?Отрегулируйте высоту созданного раскадровки UITableview до высоты его содержимого
0
A
ответ
1
Вы собираетесь должны сделать некоторую версию этого:
- Выяснить, сколько ячеек будет отображаться
- Выяснить высоты для каждой ячейки
- Посчитайте и установить высота
UITableView
Перед тем, как получить с ума (так как я знаю, что это довольно очевидно), позвольте мне следовать с этим:
- Если вы точно знаете, сколько ячеек будет отображаться все время (и это статическое значение), вы можете вручную отрегулировать высоту в Interface Builder.
- Если вы не знаете (что, я думаю, это так, исходя из вашего вопроса), вам нужно будет выполнить 1-е-3-е место выше во время выполнения. Тогда, поскольку
UITableView
является подклассомUIView
, вы можете просто отрегулировать его свойствоframe
.
Например:
- У меня 7 клеток.
- Ячейки 1, 3 и 5 (индексы 0, 2 и 4) имеют высоту 20 пикселей.
- Ячейки 2, 4, 6 и 7 (индексы 1, 3, 5 и 6) имеют высоту 30 пикселей.
- мне нужна общая высота экрана 180 пикселей (возможно, на самом деле нужно играть с этим из-за разделителей и т.д ..)
- Таким образом, я могу просто позвонить:
CGFloat newHeight = ... // Whatever you calculate
CGRect currentFrame = [[self MyTableView] frame];
[[self MyTableView] setFrame:CGRectMake(
currentFrame.origin.x,
currentFrame.origin.y,
currentFrame.size.width,
newHeight)
];
Если вы хотите получить действительно фантазию, вы можете анимировать изменение, обернув его в блок [UIView animationWithDuration:]
.
Надеюсь, это поможет!
Update/Edit
Вот запутано способ сделать это ... это работает, но я уверен, что есть лучший способ сделать это. I не утверждают, что это лучший/самый быстрый/самый эффективный способ. Это больше, чтобы показать принцип. ;-)
- (CGFloat)totalHeightNeededForTableView:(UITableView *)tv {
CGFloat retVal = 0;
int sectionCount = [self numberOfSectionsInTableView:tv];
int rowCount = 0;
NSIndexPath *path = nil;
for (int i = 0; i < sectionCount; i = i + 1) {
rowCount = [self tableView:tv numberOfRowsInSection:i];
for (int j = 0; j < rowCount; j = j + 1) {
path = [NSIndexPath indexPathForRow:j inSection:i];
retVal = retVal + [self tableView:tv heightForRowAtIndexPath:path];
}
}
return retVal;
}
Смежные вопросы
- 1. Отрегулируйте высоту надписи до высоты строки
- 2. Отрегулируйте размер UITableViewCell до его содержимого
- 3. Отрегулируйте высоту содержимого с процентами
- 4. Отрегулируйте высоту div на основе высоты окна
- 5. Как отрегулировать высоту страницы до высоты содержимого?
- 6. Отрегулируйте высоту веб-страницы до высоты экрана мобильного телефона
- 7. Отрегулируйте высоту до оставшейся высоты окна при изменении размера
- 8. Найдите высоту содержимого UIWebview до его загрузки
- 9. Отрегулируйте высоту до плавающего элемента
- 10. Отрегулируйте прокрутку iframe до высоты экрана.
- 11. iOS установить высоту ячейки до высоты UIWebView
- 12. Отрегулируйте высоту div для содержимого слайдера
- 13. Сделайте div, отрегулируйте его высоту до абсолютно позиционированных детей.
- 14. Сделайте JTextPane отрегулируйте высоту до содержания
- 15. CSS: отрегулируйте высоту блока до размера текста
- 16. Flex 4: Установка высоты искроберического листа до высоты его содержимого
- 17. Бутстрап макет - Отрегулируйте ширину столбца до его содержимого
- 18. Отрегулируйте высоту родителя с переходом при изменении содержимого?
- 19. Отрегулируйте высоту изображения в соответствии с высотой содержимого
- 20. Отрегулируйте высоту сова-карусели
- 21. Установка высоты абсолютно позиционированного div на высоту его содержимого
- 22. Отрегулируйте горизонтальную высоту экрана в зависимости от высоты ребенка
- 23. Элементы Flex, расширяющиеся до высоты содержимого
- 24. Отрегулируйте среднюю ячейку таблицы до ширины содержимого
- 25. , чтобы соответствовать IFRAME его содержимого высоты
- 26. Отрегулируйте высоту панели @media
- 27. Отрегулируйте ширину и высоту элемента управления, чтобы обернуть его содержимое
- 28. Отрегулируйте высоту LI в зависимости от LI разной высоты
- 29. ошибка раскадровки с UITableView?
- 30. Размер iFrame высота до высоты содержимого
Как вы считаете, лучший способ скомпенсировать все высоты ячеек, чтобы получить новый рейтинг? – zakdances
Ну, у вас есть * have *, чтобы предоставить 'UITableView' способ сделать это с помощью' numberOfSections ... ',' numberOfRowsInSection ... ',' heightForRow ... '.Таким образом, вы могли бы назвать это и самостоятельно разобраться. Или, если у вас есть базовая реализация (например, 1 массив, который ** является ** данными таблицы), вы можете просто перебрать массив и выяснить высоту строки для каждой ячейки, которая *** будет *** сделанные из этих данных. – mbm29414