У меня есть собственное представление в моем приложении, которое зашито слоями и встроено в NSScrollView
.Я разрешаю пользователю увеличивать масштаб (что достигается увеличением размера моего пользовательского представления).Однако у меня возникают проблемы с увеличением масштаба произвольной точки, поскольку NSScrollView
продолжает мешать и заставляет вид перепрыгивать (обычно к его началу), прежде чем я указываю его на новую точку прокрутки.Я действительно хотел бы использовать CAScrollLayer
, так как я знаю, что я определенно смогу получить правильное масштабирование с ним и сделать его плавным, но тогда я потеряю все встроенные средства прокрутки.
Есть ли способиспользовать CAScrollLayer
в пределах NSScrollView
, возможно, поддерживая NSClipView
?Если нет, то какой цели на самом деле служит CAScrollLayer
?Можно ли при другом подходе изменить размер моего вида и точку прокрутки атомарно и получить эту анимацию?
Короче говоря, CAScrollLayer
полностью бесполезен или в основном бесполезен?
Обновление
Мой внутренний вид стал меньше прыгать, создав подкласс CALayer
для отображения содержимого моего представления.Вместо определения размеров с ограничениями макета, он имеет размер переопределения -resizeWithOldSuperlayerSize:
.Я все еще не могу изменить размер кадра и происхождение моего вида одновременно и получить плавную анимацию.Чтобы получить представление о том, что я ищу, откройте изображение в режиме предварительного просмотра и увеличьте или уменьшите масштаб.Он плавно приближается к центру изображения.