Следующее расширение будет полезно в Swift .
extension UIScrollView{
func setContentViewSize(offset:CGFloat = 0.0) {
// dont show scroll indicators
showsHorizontalScrollIndicator = false
showsVerticalScrollIndicator = false
var maxHeight : CGFloat = 0
for view in subviews {
if view.isHidden {
continue
}
let newHeight = view.frame.origin.y + view.frame.height
if newHeight > maxHeight {
maxHeight = newHeight
}
}
// set content size
contentSize = CGSize(width: contentSize.width, height: maxHeight + offset)
// show scroll indicators
showsHorizontalScrollIndicator = true
showsVerticalScrollIndicator = true
}
}
Логика одинакова с данными ответами. Тем не менее, он пропускает скрытые виды в пределах UIScrollView
, и вычисление выполняется после скрытых указателей прокрутки.
Также имеется необязательный параметр функции, и вы можете добавить значение смещения, передав параметр в функцию.