这个页面是一个开启宝箱的功能,每天可开启的宝箱数和开启时间都可以后台配置,红包采用圆柱形展示,可以滑动点击左右切换。本人感觉这块的难点主要是每次进入这个页面展示样式的判断比较复杂。
红包雨部分代码
#pragma mark------红包雨
-(CAEmitterLayer *)leafEmitter{
if (!_leafEmitter) {
CAEmitterLayer *leafEmitter = [CAEmitterLayer layer];
[self.view.layer addSublayer:leafEmitter];
leafEmitter.emitterPosition = CGPointMake(self.view.bounds.size.width/2, -20);//发射器中心点
leafEmitter.emitterSize = CGSizeMake(self.view.bounds.size.width, -20);//发射器大小,因为emitterShape设置成线性所以高度可以设置成0,
leafEmitter.emitterShape = kCAEmitterLayerLine;//发射器形状为线性
leafEmitter.emitterMode = kCAEmitterLayerOutline;//从发射器边缘发出
NSMutableArray *array = [NSMutableArray array];//CAEmitterCell数组,存放不同的CAEmitterCell,我这里准备了四张不同形态的叶子图片。
for (int i = 0; i<4; i++) {
NSString *imageName = [NSString stringWithFormat:@"rain%d",i];
CAEmitterCell *leafCell = [CAEmitterCell emitterCell];
leafCell.birthRate = 20;//粒子产生速度
leafCell.lifetime = 10;//粒子存活时间
leafCell.velocity = 360;//初始速度
leafCell.yAcceleration = 360;//y轴方向的加速度,落叶下飘只需要y轴正向加速度。
leafCell.spin = 1.0;//粒子旋转速度
leafCell.spinRange = 2.0;//粒子旋转速度范围
leafCell.contents = (id)[[UIImage imageNamed:imageName] CGImage];//粒子图片
leafCell.scale = 0.3;//缩放比例
leafCell.scaleRange = 0.2;//缩放比例
[array addObject:leafCell];
_leafEmitter = leafEmitter;
}
leafEmitter.emitterCells = array;
}
return _leafEmitter;
}
在这记录一下,有需要demo的小伙伴加我QQ:3383044581,打赏10颗糖,喵。。。
网友评论