Плавное смахивание и прокрутка в стиле 10.7

Я хочу добавить в свое приложение «жидкое смахивание» двумя пальцами. Любой, кто использовал представление недели в приложении «Календарь», которое поставляется с OSX, увидит, что я пытаюсь сделать.

У меня есть представление прокрутки, и я хочу иметь возможность использовать жесты смахивания и прокрутку для перемещения представления содержимого по горизонтальной оси моего NSScrollView, т. е. на день или неделю.

Видео с WWDC 2011 под названием «Прокрутка, смахивание, перетаскивание: теперь с большей анимацией» было весьма полезным и, похоже, сможет объяснить, что я хочу сделать, но, к сожалению, пример кода для PictureSwiper не предоставляется вместе с видео.

Я знаю, что доступна более новая версия PictureSwiper, но она использует NSPageController, и я действительно ищу более старый способ Lion 10.7 для обработки вещей, поскольку я не могу использовать NSPageController. Можно ли еще где-нибудь найти старый PictureSwiper?

Если нет, может ли кто-нибудь объяснить, как работал образец PictureSwiper на Lion? Мне известно о примечании к приложению https://developer.apple.com/library/mac/#releasenotes/Cocoa/AppKitOlderNotes.html (ищите «scrollWheel:»), но это только часть пути к объяснению той функциональности, которая мне нужна.

Большое спасибо за любую помощь. Дэйвид.


person lateAtNight    schedule 08.05.2013    source источник


Ответы (1)


Для тех, кто ищет здесь ответ, я в конце концов использовал один из моих запросов «Техническая поддержка для разработчиков», который пришел с моей платной учетной записью Dev, чтобы запросить старый код. Несколько дней спустя инженер Apple прислал мне по электронной почте старый Picture Swiper.

Теперь, когда я увидел код, примечание к приложению приобрело смысл! Picture Swiper перемещает CALayers, но в моем случае я просто использую scrollToPoint: из NSClipView.

В обработчике прокрутки я просто делаю что-то вроде: (gestureAmount * columnWidth) + currentColumnIndexOffset.

Кажется, работает!

person lateAtNight    schedule 29.06.2013
comment
У вас все еще есть старый код Picture Swiper? Не могли бы вы поделиться им со мной? - person Hari; 31.05.2021