UIScrollView ширина полосы прокрутки и высота? - PullRequest
0 голосов
/ 06 февраля 2019

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

TL; DR
Чтобы отслеживать низшую позицию Y представлений, которые я добавил в UIScrollView, яиспользуйте:

lowestView = scrollView.subviews.sorted(by: { $0.frame.maxY < $1.frame.maxY }).last?.frame.maxY ?? 0

Но это не принимает во внимание тот факт, что UIScrollView уже включает в себя два подпредставления для полос прокрутки - что, конечно, портит приведенный выше расчет.

Что я действительно хотел бы сделать, так это отфильтровать полосы прокрутки из подпредставления.Что бы выглядело примерно так:

let goodViews = scrollView.subviews.filter( {$0.frame.height > 7 && $0.frame.width > 7} )

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

1 Ответ

0 голосов
/ 07 февраля 2019

Вот вариант и :

let bv = scrollView.showsVerticalScrollIndicator
let bh = scrollView.showsHorizontalScrollIndicator

scrollView.showsVerticalScrollIndicator = false
scrollView.showsHorizontalScrollIndicator = false

let lowestView = scrollView.subviews.sorted(by: { $0.frame.maxY < $1.frame.maxY }).last?.frame.maxY ?? 0

scrollView.showsVerticalScrollIndicator = bv
scrollView.showsHorizontalScrollIndicator = bh

Я только сделал быстрый тест, но, кажется, надежный.

...