CoreGraphics -Смешивание только *части *вида

Недавно я наткнулся на эту блестящую статью об улучшении производительности прокрутки с помощью UITableViewCells :http://engineering.twitter.com/2012/02/simple-strategies-for-smooth-animation.html--. Хотя в этой статье можно найти множество отличных советов, один из них особенно заинтриговал меня :

Tweets in Twitter for iPhone 4.0 have a drop shadow on top of a subtle textured background. This presented a challenge, as blending is expensive. We solved this by reducing the area Core Animation has to consider non-opaque, by splitting the shadow areas from content area of the cell.

. Используя iOS Simulator, нажмите Debug-Слои со смешанными цветами показали бы что-то вроде этого:

TwitterTableViewCell

Области, отмеченные красным, смешаны, а зеленая область непрозрачна. Отлично. В статье не упоминается :Как мне это реализовать? Насколько я понимаю, UIView либо непрозрачен, либо нет. Мне кажется, что единственный способ сделать это — использовать подпредставления, но в статье прямо говорится, что это наивная реализация:

Instead, our Tweet cells contain a single view with no subviews; a single drawRect: draws everything.

Итак, как мне отделить то, что непрозрачно, и то, чего нет в моем единственном методе drawRect :?

13
задан nrj 11 May 2012 в 22:29
поделиться