自定义邮件“气泡”会减慢滚动速度

时间:2011-12-05 17:47:43

标签: iphone ios cocoa-touch

我想创建气泡,就像在iphone上的邮件应用程序中一样。但是很多气泡(> 10)会大大减慢视图的滚动速度。

关于我的实现的几句话:我创建自定义视图并在其上添加“气泡”。以下是我创建每个“泡沫”的方法:

...

self.gradient = [[CAGradientLayer alloc] init];
self.gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor colorWithRed:223.0f/255.0f 
                                                                      green:232.0f/255.0f 
                                                                       blue:247.0f/255.0f 
                                                                      alpha:1.0f] CGColor],
                                                 (id)[[UIColor colorWithRed:189.0f/255.0f 
                                                                      green:207.0f/255.0f 
                                                                       blue:240.0f/255.0f 
                                                                      alpha:1.0f] CGColor], nil];
[self.layer insertSublayer:gradient atIndex:0];

// Border for "bubble"
[self.layer setBorderWidth:1.0f];
[self.layer setBorderColor:[UIColor colorWithRed:120.0f/255.0f 
                                           green:134.0f/255.0f 
                                            blue:214.0f/255.0f 
                                           alpha:1.0f].CGColor];    
[self.layer setCornerRadius:12.0f];
[self.layer setMasksToBounds:YES];

// Label for text of "bubble"
self.label = [[UILabel alloc] init];
[self.label setText:text];
[self.label setBackgroundColor:[UIColor clearColor]];
[self.label setTextAlignment:UITextAlignmentCenter];
[self.label setFont:[UIFont systemFontOfSize:14.0f]];
[self addSubview:label];

...

当我评论渐变和边框的添加时 - 一切都很完美! 提前谢谢!

P.S。我被建议添加下一个代码,但它没有提高性能。

[self.layer setShouldRasterize:YES];
[self.layer setRasterizationScale:[UIScreen mainScreen].scale];

1 个答案:

答案 0 :(得分:1)

你应该尝试这个课程:https://github.com/tmdvs/TDBadgedCell

它非常快,因为它使用Core Graphics,所以它不应该减慢你的滚动速度。