2010-07-24 3 views
2

У меня есть UIImageView, который округляется в моем обычае нарисованной UITableViewCell:Использует ли кварцевые слои медленную производительность прокрутки UITableView?

 rect = CGRectMake(13, 10, 48, 48); 
     avatar = [[UIImageView alloc] initWithFrame:rect]; 
     [self.contentView addSubview: avatar]; 

     CALayer * l = [avatar layer]; 
     [l setMasksToBounds:YES]; 
     [l setCornerRadius:9.0]; 

Я заметил мой UITableView прокрутки производительность снизилась немного. Не уверен, что это связано с закругленными углами?

ответ

3

Закругленные углы замедляют рисование много. Слои маски несколько быстрее. «Выпекание» углов в контент (как изображение или использование обтравочного контура в вашем drawRect:) еще быстрее.

Выделяя новые представления/слои будут также замедлять ваш скроллинг - использовать их везде, где вы можете (создание UITableViewCell подкласса, который создает подвиды в init и уничтожает их в dealloc обычно работает хорошо)

Это, как говорится, добавление дополнительных представлений не должно значительно снижать производительность.

+0

Должен ли я сделать свой CALayer переменной-членом, а затем отпустить его в dealloc? Сейчас он не освобождается. –

+0

Если вы используете '[CALayer layer]', вам не нужно его выпускать; он уже автореализован. – rpetrich

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