Недавно я наткнулся на эту блестящую статью об улучшении производительности прокрутки с помощью UITableViewCells: http://engineering.twitter.com/2012/02/simple-strategies-for-smooth-animation.html - В то время как многие полезные советы можно найти в этом статья, есть, в частности, то, что меня заинтриговало:
В твитах в Twitter для iPhone 4.0 есть тень на фоне тонкого текстурированного фона. Это представляло собой проблему, поскольку смешивание дорого. Мы решили это, уменьшив область, в которой Core Animation должна учитывать непрозрачность, разбивая области тени из области содержимого ячейки.
Используя симулятор iOS, нажав "Отладка - цветные смешанные слои", вы увидите что-то вроде этого:
Области, отмеченные красным цветом, смешиваются, а зеленая область непрозрачна. Отлично. В статье не упоминается следующее: Как это реализовать? Я понимаю, что UIView либо непрозрачен, либо нет. Мне кажется, что единственный способ добиться этого - с подзаголовками, но в статье явно указано, что как наивная реализация:
Вместо этого, наши ячейки Tweet содержат одно представление без подзапросов; один drawRect: рисует все.
Итак, как мне отделить то, что непрозрачно, а что нет в моем единственном методе drawRect:??