Представляйте и масштабируйте большие изображения на iOS без CATiledLayer - PullRequest
0 голосов
/ 25 января 2012

Я хотел бы представить и позволить пользователю масштабировать большие изображения на iPhone и iPad практически так же, как работает приложение Photos.

Я понимаю, что CATiledLayer - это класс goto для этого, ноэстетика, которую он использует, не подойдет для моего приложения.Он отображает плитки одну за другой, в то время как приложение Photos отображает весь экран сразу (и показывает пиксельную версию во время и после масштабирования до тех пор, пока приложение не сможет его догнать).

Я, конечно, мог бы реализовать представление, которое отображаетизображение на заднем плане после каждого увеличения.Однако, как только исходное изображение станет большим, это приведет к сбою приложения.Так что мозаика привлекательна, я бы предпочел не обновлять экран до тех пор, пока все плитки не будут готовы (и покажет изображение с более низким разрешением).

Кто-нибудь пытался реализовать что-то подобное?Есть идеи?

Ответы [ 2 ]

3 голосов
/ 18 апреля 2012

Примеры Apple PhotoScroller и ScrollViewSuite показывают, как это сделать, и многое другое.

Также есть видео 2010 WWDC под названием «Проектирование приложений с представлениями прокрутки», в котором рассказывается о PhotoScroller.

2 голосов
/ 25 января 2012

Полагаю, у вас может быть два вида: один ImageView с изображением в низком разрешении, а сверху пользовательский вид с CaTiledLayer, с прозрачным фоном и скрытый в начале.

Итак, при масштабировании (выВам нужно будет применить масштабирование к обоим видам), и вам потребуется дополнительное разрешение, просто покажите многослойный вид, чтобы он загружал плитки, одновременно показывая низкие (и пиксельные) на не загруженных плитках.

...