IOS Tableview в высотах прокрутки - PullRequest
1 голос
/ 24 октября 2011

У меня есть UITableView, вложенное в UIScrollView, и мне сложно вычислить высоту любого из них.

Содержимое обоих документов является динамическим, поэтому я бы хотел, чтобы представление таблицы расширялось до его содержимого, и, в свою очередь, представление прокрутки расширялось до содержимого представления таблицы.

Iесть это для просмотра прокрутки:

CGFloat scrollViewHeight = 0.0f;
for (UIView* view in contentView.subviews)
    {
        scrollViewHeight += view.frame.size.height;
    }

Но результирующая высота слишком длинная, слишком много прокрутки.

Вид таблицы, с которой мне сложнее получить динамическое изменение размера, если я оставлю егобез определенного размера это слишком мало.Поэтому я добавил это:

self.tableView.contentSize = CGSizeMake(320.0f, [self.tableView contentSize].height);

И это слишком много.

Я думаю, что размер табличного представления определяется количеством и высотой строк в нем, но не может найтиЧеткий ответ здесь или в сети.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 17 ноября 2011

Я использую следующий код для установки высоты UIScrollView:

for (UIView* view in scrollview_.subviews)
{
    if (!view.hidden)
    {
        CGFloat y = view.frame.origin.y;
        CGFloat h = view.frame.size.height;
        if (y + h > scrollViewHeight)
        {
            scrollViewHeight = h + y;
        }
    }
}

[scrollview_ setContentSize:(CGSizeMake(320, scrollViewHeight))];

Чтобы получить высоту UITableView, может быть, вы можете рассчитать как rowheight * rowcount

0 голосов
/ 24 октября 2011

Ваш UITableViewDelegate должен реализовать:

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

Это установит правильный размер для вашей ячейки.

...