Проблема с производительностью clipToBounds и masksToBounds

У меня есть UIScrollView и количество объектов (композиций UIView )с UIImageViews внутри них. Некоторые из UIImageView имеют круглую рамку (. Для этого я использую myImageView.layer.masksToBounds = YES;). Другой имеет прямоугольные границы и часть изображения в них (Я использую для этого свойство Clip subviewsв Interface Builder ).

Проблема в том, что я обнаружил, что свойства клипа сильно влияют на производительность при прокрутке :

. Для iPod touch (4-го поколения )результаты профилирования:

  • с включенными свойствами клипа (оба или один из них )у меня около 30 кадров в секунду при прокрутке
  • с отключенными свойствами клипа у меня все 60 кадров в секунду при прокрутке

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

9
задан Lloyd18 15 June 2012 в 10:32
поделиться