UIScrollview с двумя изображениями - поддержание масштабирования 1 изображения и 1 статического изображения (фиксированный размер) - PullRequest
1 голос
/ 22 апреля 2010

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

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

Если я добавлю полупрозрачный UIView поверх UIImageView (который добавляется к UIScrollView), все увеличится. Однако, если я добавлю оба в качестве подпредставлений к базе UIView, отслеживаются только те касания, которые являются полупрозрачными UIView с момента добавления последнего.

Мне нужно, чтобы элемент управления сначала располагался в полупрозрачном UIView для касаний, поскольку я могу изменить размер полупрозрачного представления. Тем не менее, я хотел бы передать управление касаниями UIScrollView, если используются два пальца. Есть ли для меня способ достичь этого? Следующий корреспондент, кажется, не работает. Я также пытался использовать хит-тест в дополнение к подклассу UIWindow, но базовый UIView должен иметь возможность управления перемещением / выталкиванием, поэтому я не думаю, что могу подкласс UIWindow, чтобы вставить в стек навигации.

Буду признателен за любую помощь.

Спасибо

Winston

1 Ответ

1 голос
/ 23 апреля 2010

Хм .. вы можете попробовать эту иерархию (возможно, подклассы):

UIView (container)
 > UIView (semitransparent overlay)
 > UIScrollview
   - UIView (zoomable content)

Таким образом, наложение не масштабируется.

Сложнее то, что пользователь взаимодействует на нескольких уровнях. Это легко, если в вашем оверлее есть области, которые не должны обнаруживать касания пользователя, для этого вы просто устанавливаете свойство UIView 'userInteractionEnabled' в 'NO' для частей вида, где касания должны быть "перенаправлены" на нижележащие слои.

Но если я вас правильно понял, вам нужно что-то более сложное. Вы, вероятно, могли бы установить некоторый мастер-сенсорный контроллер в контейнере UIView, который узнает, что происходит, и затем вызывает определенные методы его подпредставлений / пересылает события. Я не знаю всех точных методов, которые необходимо переопределить / реализовать в контейнере, но посмотрите демонстрацию tapZoom из примера кода ScrollView Suite . Это очень хороший пример.

Просто из любопытства могу я спросить, для чего используется эта модель взаимодействия?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...