Подтвердить что ты не робот

Возможно ли переместить индикатор UIScrollView с правой стороны влево?

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

Спасибо за время

4b9b3361

Ответ 1

Собственно, это возможно, изменив свойство scrollIndicatorInsets, чтобы ограничить индикатор маленькой областью в левой части:

tableView.scrollIndicatorInsets = UIEdgeInsetsMake(0,0,0,tableView.bounds.size.width-10);

Ответ 2

Мне нравится решение Джереми Джей (хотя я его не тестировал), но просто для тщательного изучения идеи... здесь другой, который может быть стоит попробовать (хотя он также не проверен):

Используйте два вида прокрутки.

Один вид прокрутки (мы будем называть это "реальным" ), содержащий ваш контент, но скрытый индикатор. Другой вид прокрутки не содержит содержимого, но его contentSize установлен в соответствии с представлением "реальной" прокрутки. Когда изменяется "реальный" вид прокрутки contentOffset (как это наблюдается через сообщения делегата), измените "фальшивое" смещение вида прокрутки для соответствия. (Просмотрите сеанс просмотра прокрутки с WWDC 2012, чтобы больше узнать о том, как использовать прокрутку без представления содержимого.)

В теории (опять же, я не проверял это), теперь у вас есть индикатор индикатора прокрутки, который отделен от вашего исходного вида прокрутки, и вы можете разместить его там, где хотите, по отношению к оригиналу. Сложите его поверх оригинала и перемещайте/размер, чтобы он занимал узкую щель слева, и у вас есть левый указатель прокрутки. (Поочередно сложить его поверх оригинала и перевернуть его по горизонтали с помощью аффинного преобразования.) Поместите его где-нибудь еще, чтобы взять свой пользовательский интерфейс в поездку в сумасшедший город. (Или нет.) Убедитесь, что вы заставляете его игнорировать штрихи, если он накладывается сверху.

Ответ 3

Быстрый способ достичь этого (если вы не используете действия в строке), не имея необходимости вычислять вставки или возиться с дополнительными представлениями таблицы, было бы преобразовать представление таблицы по оси Y (перевернуть), а затем преобразовать когда вы их получите.

tableView.transform = CGAffineTransformMakeScale(1, -1);

а затем

cell.transform = CGAffineTransformMakeScale(1, -1);