Быстрая проверка показывает, что для индикаторов прокрутки со вставками, установленными на UIEdgeInsetsZero
(по умолчанию), они размещаются по 3 пункта от краев.
Вы можете попробовать:
theScrollView.scrollIndicatorInsets = UIEdgeInsets.init(top: -3, left: -3, bottom: -3, right: -3)
следует выровнять горизонтальный индикатор заподлицо с нижней частью и заподлицо с левым и правым краями, а вертикальный индикатор - вправо, а также с верхним и нижним краями.
Вы может хотеть сначала получить фреймы, так как это возможно в разных устройствах / размерах / версиях iOS.
Редактировать:
Пара уточняющих заметок ...
scroll indicators
- изображения.Вы можете найти их, просмотрев подпредставления представления прокрутки (код или с помощью иерархии представления отладки).
Вставки по умолчанию (нуля) помещают эти представления изображений на 3 точки от края рамки представления прокрутки.
При просмотре с прокруткой 300 x 500
источник вертикального индикатора:
x:294.5 y:3.0 with a width of 2.5
294.5 + 2.5 == 297
// 3-pts from the right edge, 3-pts from the top
, а источник горизонтального индикатора:
x:3.0 y:494.5 with a height of 2.5
494.5 + 2.5 == 497
// 3-pts from the left edge, 3-pts from the bottom
Итак, используя:
.scrollIndicatorInsets = UIEdgeInsets.init(top: -3, left: -3, bottom: -3, right: -3)
перемещает начало координат на
// vertical
x:297.5 y:0.0 with a width of 2.5
297.5 + 2.5 == 300
// flush to top and right edges
// horizontal
x:0.0 y:497.5 with a height of 2.5
497.5 + 2.5 == 500
// flush to left and bottom edges
Я полагаю, что возможно , что может измениться в будущем.Поскольку все меньше людей используют устройства с небольшими экранами, Apple может изменить ширину / высоту на 3 или 3,5 или что-то еще, а может изменить вставку по умолчанию с 3 на что-то другое.Вот почему я сказал, что вы, возможно, захотите, чтобы кадры получали правильные значения вставки, а не жестко кодировали их как 3
.
Любопытно, что до тех пор, пока рамки индикатора не будут отображены на экране- либо мигая, либо прокручивая содержимое - их кадры устанавливаются на 7 пунктов по высоте (для вертикального индикатора) и 7 пунктов (для горизонтального) и располагаются в правом нижнем углу.
Итак, с рамкой прокрутки 500 x 300
, рамки индикатора изначально:
// vertical
x:294.5 y:490.0 w:2.5 h:7.0
// horizontal
x:290.0 y:494.5 w:7.0 h:2.5
Это все еще говорит о том, что они находятся на расстоянии 3-х пунктов от краев, но это не так ясно ..И опять же, нет никаких гарантий, что это не изменится в будущем.
Если вы действительно хотите, чтобы индикаторы работали в нужном вам месте, лучше всего использовать пользовательские представления вместо встроенных.индикаторы.