2009-10-15 5 views
1

Мне нужно замаскировать всю анимацию, которая имеет место в UIImageView. Я попытался подклассифицировать UIImageView и сделать маскировку в вызове drawRect, но это не вызвано для каждого фрейма анимации, как я ожидал (он вообще не вызван вообще), хотя анимация отлично работает.Маска для всей анимации происходит в UIImageView

У кого-нибудь есть опыт?

ответ

1

Поскольку на iPhone OS отсутствует общедоступный API CIFilter, нет способа сделать композицию с использованием UIView или CALayer.

Это означает, что ответ таков: вы не можете замаскировать содержимое UIImageView, анимированное или нет.

Я подал запрос на ошибку радиолокатора, потому что я считаю, что добавление API CIFilter станет отличным дополнением к Cocoa Touch и расширит возможности UI-дизайна на UIView/CALayer. На данный момент, если вы хотите сделать композицию на iPhone, вы должны использовать Quartz (медленный) или OpenGL (все делаете самостоятельно).

Если вы согласны с полезностью CIFilters для iPhone OS, рассмотрите вопрос о подаче заявки на номер radar. Чем больше запросов, тем быстрее Apple позаботится об этом.

+0

Спасибо Николаю за подтверждение моих страхов. Чтобы обойти это, я подклассифицировал UIView и сделал анимацию с помощью таймера. Теперь это работает, но производительность ужасна. – Dimitris

Смежные вопросы