Вопрос о CALayer и UIView - PullRequest
       9

Вопрос о CALayer и UIView

3 голосов
/ 18 июня 2011

Цель состоит в том, чтобы реализовать полупрозрачный слой, который выдвигался бы, чтобы собрать ответ пользователя при необходимости. Полупрозрачный слой будет иметь несколько значков на выбор для пользователя. В настоящее время я использую объект CALayer, который выглядит нормально и имеет встроенную анимацию.

Но проблема в том, что CALayer вообще не реагирует на сенсорные события. Теперь я думаю, что вместо этого я должен использовать UIView. UIView наследуется от UIResponder, поэтому его объекты естественно способны реагировать на события пользователей.

Это решение между UIView и CALayer. Что касается CALayer, я проделал немалую работу над ним, и он выглядит вполне нормально, за исключением того, что нужно добавить сенсорный ответ. Или я должен вместо этого использовать UIView в качестве подпредставления (поскольку он имеет встроенный сенсорный ответ)?

Надеюсь, что кто-то может знать об этом, может помочь ...

1 Ответ

5 голосов
/ 18 июня 2011

Чтобы реагировать на взаимодействие с пользователем, лучше всего использовать UIView. Вероятно, вы могли бы заставить его работать без него, но я бы не рекомендовал его.

Что касается интеграции существующего слоя с UIView, я бы создал подкласс UIView и переопределил бы его +layerClass, чтобы получить Class вашего пользовательского CALayer. В качестве альтернативы, если вы не используете пользовательский подкласс CALayer (и, как правило, нет реальной необходимости создавать свой собственный), вы можете сделать свой собственный чертеж внутри UIView 's -drawLayer:inContext: метод.

...