Получить высоту uiscrollview с autolayout
Я построил uiscrollview с чистой autolayout, поэтому я не использую:
[scrollView setContentSize: CGMakeSize (contentWidth, contentHeight)];
проблема в том, что теперь мне нужно получить contentSize.height для uiScrollView, но при автоматической выдаче я получаю 0.
Мне нужно получить contentSize.height для увеличения scrollView, когда пользователь дважды коснется.
код, который я хочу использовать, это: ZoomToPoint
Можете ли вы помочь мне использовать этот код с autoLayout?
большое спасибо
2 ответа
У меня недостаточно информации, чтобы понять, почему вы получаете 0, что, похоже, не происходит ни с одним из представлений прокрутки в приложении, над которым я сейчас работаю. Может быть, ваши ограничения на автоматическое размещение не совсем верны? Autolayout + UIScrollView
Это не очень простая комбинация. Я нашел, что проще всего разместить все виды с равниной UIView
"контейнер" и поместите его в представление прокрутки.
Но действительно ли вам нужен contentSize.height? Для меня имеет смысл просто удвоить масштаб при увеличенном двойном касании и уменьшить масштаб до 100% при увеличенном двойном касании:
func doubleTapReceived(recognizer: UITapGestureRecognizer) {
if recognizer.state == .Ended {
if photo.scrollView.zoomScale == 1.0 {
let point = recognizer.locationOfTouch(0, inView: <one of your views>)
<your scroll view>.zoomToPoint(point, withScale: 2.0, animated: true)
} else {
<your scroll view>.zoomToRect(photo.frame, animated: true)
}
}
}
Подклассы не требуются.
Вот аналогичная часть моего кода. Может быть, попытаться клонировать мой проект и построить его и посмотреть, чем он отличается от того, что у вас есть? Чтобы перейти к этому конкретному виду прокрутки, перейдите на вкладку "Фотографии" и коснитесь одного из уменьшенных изображений в представлении коллекции.
Вы должны использовать layoutSubviews
методы в UIScrollView
подкласс, если вы подкласс UIScrollView
или иначе вы могли бы использовать viewDidLayoutSubviews
метод в UIViewController
найти правильный contentSize
из прокрутки.