2010-07-24 73 views
2

我有一個正在上我的自定義繪製的UITableViewCell四捨五入一個UIImageView:使用Quartz圖層會減慢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子類,在initdealloc創建子視圖並破壞它們通常效果很好)

話雖這麼說,添加額外的視圖不應該顯着降低性能。

+0

我應該讓我的CALayer成員變量,然後在dealloc中釋放它?現在它不被釋放。 – 2010-07-24 15:00:14

+0

如果你使用'[CALayer層]',你不需要釋放它;它已經自動釋放。 – rpetrich 2010-07-25 00:48:55