У меня есть UIViewController
с 3 UITableView
s, расположенными вертикально на нем. Я не хочу, чтобы ни одна из таблиц не прокручивалась. Высота для двух таблиц (A
и B
) рассчитывается по их содержимому - третий (C
) будет изменен, чтобы соответствовать любому пространству, оставшемуся на экране. Для C
, я буду знать, сколько строк мне нужно отобразить, и я хочу рассчитать правильный heightForRowAtIndexPath
, чтобы все ячейки были в порядке.Расчет высоты строки для фиксированного числа рядов и высоты стола
Сейчас я пытаюсь
- взять высоту всего экрана
- вычесть от общей высоты для
A
- вычесть от общей высоты для
B
- Вычтем некоторое фиксированное пустое пространство
- вычесть размер
C
's header - вычитать от размера колонтитула
- разделяй
C
«s по числу клеток вC
От того, как я полагаю, это должно получить мне высоту, что нужно для каждой отдельной клетки в C
. Верно ли это? Есть что-то, чего я не вижу? Вот код, я использую:
- (CGFloat) tableView:(UITableView *) heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (tableView = self.tableC)
{
// self.lcA & self.lcB are NSLayoutContraints that I'm setting after I calculate how tall those tables need to be
// buffer is some white space padding I add to keep the tables from touching - it will be hardcoded to some constant before this code runs
CGFloat target = (self.view.bounds.size.height - self.lcA.constant - self.lcB.constant - [self tableView:tableView heightForHeaderInSection:indexPath.section] - [self tableView:tableView heightForFooterInSection:indexPath.section] - buffer)/[self tableView:tableView numberOfRowsInSection:indexPath.section];
}
}
Однако, когда я запускаю это, он выходит из строя, говоря -[MyViewController tableView:heightForHeaderInSection:]: unrecognized selector sent to instance
Я явно не реализующий heightForHeaderInSection
на данном контроллере представления, но контроллер установлен как <UITableViewDataSource,UITableViewDelegate,...>
в файле MyViewController.h
. Нужно ли использовать heightForHeaderInSection
, чтобы использовать этот код? Если да, есть ли способ, которым я могу его реализовать, и просто заставить его вернуть значение по умолчанию (что-то вроде return [super heightForHeader];
)? Если нет, то почему я получаю эту ошибку?
Да, я использую 'contentSize' для установки' NSLayoutConstraint', о котором я упомянул в коде, который я разместил, и я проверил флажок, чтобы запретить прокрутку на моей раскадровке, поэтому это тоже позаботится. Я ищу, как сжать ячейки в таблице 'C', чтобы они все вписывались в пространство, которое у меня есть. Я не думаю, что на 'UIScrollView' есть что-то, что может помочь мне в этом, если я не пропущу что-то. – GeneralMike