2010-07-24 60 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

相关问题