UITableView - держать самую нижнюю ячейку прокручивается к вершине? - PullRequest
0 голосов
/ 12 октября 2011

Я создаю музыкальное приложение. Экран списка воспроизведения представляет собой UITableView. Он имеет 3 раздела: Предыдущие треки, Сейчас играет, Следующие треки. Они в следующем порядке:

-- PREVIOUS TRACKS SECTION --
   Track Z
   Track Y
   Track X
-- NOW PLAYING SECTION --
   Track A
-- NEXT TRACKS --
   Track B
   Track C
   Track D

Я всегда хочу, чтобы раздел «Сейчас исполнялся» прокручивался до верхней части табличного представления. Это не проблема, если: A) В разделе «Предыдущие треки» нет элементов или Б) В разделе Следующие треки достаточно треков, чтобы пройти за нижнюю часть UITableView.

Однако, если, например, в разделе «Предыдущие дорожки» есть 10 дорожек, одна в разделе «Воспроизводится в данный момент» и 2 в разделе «Следующая дорожка», тогда, когда я сообщаю табличному представлению прокрутить, чтобы раздел «Сейчас исполняется» находился сверху из вида, он просто возвращается назад, так что он находится на 3 позиции от нижней части вида (2 элемента «Следующая дорожка» плюс играющий в данный момент).

Другими словами, посмотрите на свою iPod-библиотеку или любой TableView на iPhone. Что я пытаюсь сделать, так это прокрутить последний трек в списке вверху экрана и оставить пустое пространство под ним.

Есть ли способ сказать TableView не возвращаться на место в этом сценарии? Я попытался воспроизвести там ячейку большой высоты, но она была хакерской и вызывает проблемы при переупорядочении ячеек в TableView.

Технически это Monotouch, но я в порядке с Objective C, так что любой язык в порядке.

Ответы [ 3 ]

3 голосов
/ 12 октября 2011

Посмотрите на свойство contentInset, которое наследует табличное представление. Вам нужно будет установить нижнюю вставку так, чтобы была видна самая нижняя ячейка.

Пример:

self.tableView.contentInset = UIEdgeInsetsMake(0, 0, self.tableView.frame.size.height - 88, 0);
0 голосов
/ 16 мая 2014

Не перезаписывать значение вставки где-либо еще, как в моем случае;)

0 голосов
/ 28 февраля 2014

У меня была такая же проблема, но проблема была в обновлении / перезагрузке UITableView из фонового потока. На всякий случай, если у кого-то есть такая же проблема, как у меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...