Округленная производительность UIScrollView - PullRequest
14 голосов
/ 19 мая 2011

Отлично работает на iPhone 4 и 3GS:

scrollView.layer.cornerRadius = 11;
scrollView.layer.masksToBounds = YES;

Но на iPhone 3G и iPod touch 2-го поколения прокрутка становится действительно прерывистой. Я знаю, что есть некоторые хитрости о том, как улучшить производительность CALayer теней, например (установка shouldRasterize в YES и свойство shadowPath), есть ли что-нибудь похожее, что можно сделать для CALayer cornerRadius?

Ответы [ 2 ]

7 голосов
/ 23 мая 2011

Является ли содержимое вашего вида прокрутки (что отображается под закругленными углами) сплошным или статичным?Если это так, вы сможете добиться более высокой производительности, накладывая «угловую» графику - полупрозрачную в их центре и непрозрачную (с фоновым цветом или любым другим) на их краях - поверх углов вашего вида прокрутки.Стоимость наложения четырех изображений 11x11 на ваш контент будет значительно меньше, чем его обрезка.

2 голосов
/ 22 мая 2011

Рендеринг CALayers слишком медленный для этого использования (особенно на старых устройствах), он не очень хорош в играх и т. Д. Вы можете переключиться на спрайты UIImages или cocos2d, другой вариант - создать свой собственный класс слоя с OpenGL, хотя это не так просто. Надеюсь, один из этих вариантов вам подойдет.

...