Изображение/программа просмотра фотографий UIScrollView с включенной подкачкой страниц и изменение масштаба

Хорошо, я думаю, что пора сделать официальное место в Интернете для этой проблемы: Как сделать a UIScrollView программа просмотра фотографий с подкачкой страниц и изменением масштаба. Приветствуйте моего товарища UIScrollView хакеры.

У меня есть a UIScrollView с подкачкой страниц, включенной, и я отображаюсь UIImageViews как встроенное фото приложение. (Это звучит знакомым уже?)

Я нашел следующий проект на GitHub:

https://github.com/andreyvit/ScrollingMadness/wiki

Который показывает, как реализовать увеличивание представления прокрутки, в то время как подкачка страниц включена. Если кто-либо еще испытывает это, я на самом деле должен был удалить UIScrollView разделите на подклассы и используйте собственный класс иначе, он не работает. Я думаю, что это из-за изменений в 3,0 SDK, касающихся, как представление прокрутки прерывает сенсорные события.

Так идея состоит в том, чтобы удалить все другие представления, когда Вы начинаете масштабировать и перемещаете текущее представление в (0, 0) в scrollview, обновление contentsize и т.д. Затем, когда Вы масштабируете назад к 1.0f, это добавляет другие представления назад и помещает вещи весь назад в порядке.

Так или иначе тот проект работает отлично в средстве моделирования, но на устройстве существует некоторое противное перемещение представления, которого Вы изменяете размер, который похож, это вызывается фактом, который мы изменяем contentsize/offset и т.д. для изменяемого представления. Необходимо сделать это представление, перемещающееся иначе, можно панорамировать оставленный через пробел, оставленный другими представлениями.

Я нашел одно интересное примечание в "Известных Проблемах" 3,0 информации о версии SDK:

UIScrollView: После изменения масштаба проигнорирована вставка содержания, и содержание оставляют в неправильном положении.

Это отчасти походит на то, что происходит здесь. После увеличивания масштаб представление сместится вне экрана, потому что Вы изменили смещение и т.д.

Я уже провел часы на это, и я замедляю прибытие в печальное понимание, что это просто не собирается работать.

Программа просмотра фотографий Three20 вне рассмотрения: это - слишком тяжелый вес и существует слишком много ненужного UI и другое поведение.

Созданный в фото приложении, кажется, делает некоторое волшебство. Если Вы увеличиваете масштаб изображения и панорамирования к далеким краям, текущим фото перемещениям независимо от фотографии рядом с ним, которая не является тем, что Вы получаете при попытке этого стандартом UIScrollView.

Я видел дискуссию о вложении UIScrollViewно я действительно не хочу идти туда.

Имеет кого-либо, управлял этим со стандартом UIScrollView (и работы в 2,2 и 3,0 SDK)? Я не представляю себе прокручивать свое собственное масштабирование + возврат + панорамирование + код пейджинга.

55
задан RamC 21 August 2019 в 23:30
поделиться