iOS 雪花動(dòng)畫與跑馬燈

這篇是接著上一篇, 關(guān)于動(dòng)畫效果的收集篇, 這篇介紹了跑馬燈動(dòng)畫以及下落雪花動(dòng)畫, 請(qǐng)看, 話說最近怎么不在狀態(tài)呢, 好傷感(囧~).
上一篇 - iOS 仿YY直播心形動(dòng)畫 & 煙花動(dòng)畫

跑馬燈效果演示

這里貼出使用代碼, 詳細(xì)請(qǐng)下載Demo查看

下載即用~ 快餐 - -Star鼓勵(lì)

演示

下載后, 在VC中這樣使用, 當(dāng)然Demo中也有體現(xiàn)

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor = [UIColor blackColor];

XTScrollLabelView *drawMarqueeView  = [[XTScrollLabelView alloc] initWithFrame:CGRectMake(0, 0, 250.f, 20)];
drawMarqueeView.delegate          = self;
drawMarqueeView.marqueeDirection  = FromLeftType;
drawMarqueeView.center            = self.view.center;
[self.view addSubview:drawMarqueeView];
[drawMarqueeView addContentView:[self createLabelWithText:@"夏天是個(gè)很好的季節(jié), 而夏天然后是簡(jiǎn)書的推薦作者, 喜歡分享!"
textColor:[self randomColor]]];
[drawMarqueeView startAnimation];

}

- (UILabel *)createLabelWithText:(NSString *)text textColor:(UIColor *)textColor {

NSString *string = [NSString stringWithFormat:@" %@ ", text];
CGFloat width = [string widthWithStringAttribute:@{NSFontAttributeName : [UIFont systemFontOfSize:14.f]}];
UILabel  *label  = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, width, 20)];
label.font       = [UIFont systemFontOfSize:14.f];
label.text       = string;
label.textColor  = textColor;

return label;
}
- (UIColor *)randomColor {

return [UIColor colorWithRed:[self randomValue] green:[self randomValue] blue:[self randomValue] alpha:1];
}
- (CGFloat)randomValue {

return arc4random() % 256 / 255.f;
}
- (void)drawMarqueeView:(XTScrollLabelView *)drawMarqueeView animationDidStopFinished:(BOOL)finished
{
[drawMarqueeView stopAnimation];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[drawMarqueeView addContentView:[self createLabelWithText:[self randomString]
textColor:[self randomColor]]];
[drawMarqueeView startAnimation];
});
}
- (NSString *)randomString {

NSArray *array = @[@"人帥",
@"勤勞",
@"年輕",
@"刻苦",
@"開玩笑",
@"都是我編的, 前面的別跑"];
return array[arc4random() % array.count];
}

演示

</div>

雪花動(dòng)畫代碼演示

-- 在ViewDidLoad中這樣寫, 注釋已經(jīng)很詳細(xì)

// 創(chuàng)建粒子Layer
CAEmitterLayer *snowEmitter = [CAEmitterLayer layer];

// 粒子發(fā)射位置
snowEmitter.emitterPosition = CGPointMake(120,0);

// 發(fā)射源的尺寸大小
snowEmitter.emitterSize     = self.view.bounds.size;

// 發(fā)射模式
snowEmitter.emitterMode     = kCAEmitterLayerSurface;

// 發(fā)射源的形狀
snowEmitter.emitterShape    = kCAEmitterLayerLine;

// 創(chuàng)建雪花類型的粒子
CAEmitterCell *snowflake    = [CAEmitterCell emitterCell];

// 粒子的名字
snowflake.name = @"snow";

// 粒子參數(shù)的速度乘數(shù)因子
snowflake.birthRate = 20.0;
snowflake.lifetime  = 120.0;

// 粒子速度
snowflake.velocity  = 10.0;

// 粒子的速度范圍
snowflake.velocityRange = 10;

// 粒子y方向的加速度分量
snowflake.yAcceleration = 2;

// 周圍發(fā)射角度
snowflake.emissionRange = 0.5 * M_PI;

// 子旋轉(zhuǎn)角度范圍
snowflake.spinRange = 0.25 * M_PI;
snowflake.contents  = (id)[[UIImage imageNamed:@"snow"] CGImage];

// 設(shè)置雪花形狀的粒子的顏色
snowflake.color      = [[UIColor whiteColor] CGColor];
snowflake.redRange   = 1.5f;
snowflake.greenRange = 2.2f;
snowflake.blueRange  = 2.2f;

snowflake.scaleRange = 0.6f;
snowflake.scale      = 0.7f;

snowEmitter.shadowOpacity = 1.0;
snowEmitter.shadowRadius  = 0.0;
snowEmitter.shadowOffset  = CGSizeMake(0.0, 0.0);

// 粒子邊緣的顏色
snowEmitter.shadowColor  = [[UIColor whiteColor] CGColor];

// 添加粒子
snowEmitter.emitterCells = @[snowflake];

// 將粒子Layer添加進(jìn)圖層中
[self.view.layer addSublayer:snowEmitter];

// 形成遮罩
UIImage *image      = [UIImage imageNamed:@"alpha"];
_layer              = [CALayer layer];
_layer.frame        = (CGRect){CGPointZero, self.view.bounds.size};
_layer.contents     = (__bridge id)(image.CGImage);
_layer.position     = self.view.center;
snowEmitter.mask    = _layer;
pic
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容