我想创建气泡,就像在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];
答案 0 :(得分:1)
你应该尝试这个课程:https://github.com/tmdvs/TDBadgedCell
它非常快,因为它使用Core Graphics,所以它不应该减慢你的滚动速度。