Я читал довольно много документации, и, надо сказать, я совершенно смущен. Вот что я сейчас установил.Прокрутка Просмотров, Масштабирование и масштабирование Происхождение путаницы
В проекте iPad у меня есть UIScrollView (scrollView
), который содержит дочерний UIView (insetView
). Мой insetView
возвращается из метода scrollViewDidEndZooming
и используется исключительно для масштабирования его дочерних представлений.
insetView
начинается с меньшего и расположенного по центру на scrollView
. Поскольку пользователь зажимает Zoom, insetView
может либо расти в два раза, либо в оригинальном размере, либо уменьшить до половины его первоначального размера.
Все это прекрасно работает, но есть одно небольшое раздражение, которое я хочу облегчить. Если я зажимаю, чтобы увеличить, insetView
сжимается, но началом масштабирования является верхний левый угол insetView
. Другими словами, insetView
будет расти и сжиматься с его верхней левой точкой, зафиксированной в окне scrollView
.
То, что я хотел бы сделать, это insetView
увеличивать и уменьшать на это центр, и остаются неподвижными в центре scrollView
, пока не подобран больше scrollView
области. В этот момент я хотел бы, чтобы начало увеличения было серединой пинча или, по крайней мере, в центре текущей части insetView
, которая в настоящее время видна?
Как это можно сделать?
Если мой 'scrollView' не тот же размер, как мой дисплей, должен не' CGSize boundsSize = self.bounds.size ; 'line read 'CGSize boundsSize = scrollView.bounds.size;'? – RLH
Извинения, да, это должно. Я скопировал код из моего проекта и отредактировал его, но не смог правильно отредактировать этот бит. Хорошо подмечено. Работает ли это для вас? – mattjgalloway
Да! Спасибо! На самом деле у меня это было в моем коде за один раз, за исключением операторов 'else'. Это была недостающая часть того, что делал мой код, и ошибка, которая появилась без этого кода, была более раздражающей, чем поведение, описанное выше. Я отмечаю это как ответ, но у меня есть еще один вопрос. Мой 'insetView' по-прежнему оставался фиксированным в' scrollView' в верхнем левом углу, в то время как сжимался. Дисплей повторно центрируется, когда я отпускаю пинч. Есть ли способ сделать это, в то время как масштабирование влияет, или мне просто нужно жить с ним? Это работает, но я придирчивый и, как приложение, польский! :) – RLH