麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > iOS > 正文

IOS實現簽到特效(散花效果)的實例代碼

2019-10-21 18:41:08
字體:
來源:轉載
供稿:網友

本文講述了IOS實現簽到特效(散花效果)實例代碼。分享給大家供大家參考,具體如下:

ios,簽到,特效,簽到特效,散花特效

ios,簽到,特效,簽到特效,散花特效

散花特效

#import <Foundation/Foundation.h>/// 領取獎勵成功@interface RewardSuccess : NSObject/** * 成功動畫 */+ (void)show;@end
#import "RewardSuccess.h"#import "RewardSuccessWindow.h"#define EmitterColor_Red [UIColor colorWithRed:255/255.0 green:0 blue:139/255.0 alpha:1]#define EmitterColor_Yellow [UIColor colorWithRed:251/255.0 green:197/255.0 blue:13/255.0 alpha:1]#define EmitterColor_Blue [UIColor colorWithRed:50/255.0 green:170/255.0 blue:207/255.0 alpha:1]@implementation RewardSuccess+ (void)show{ UIWindow *window = [UIApplication sharedApplication].keyWindow; UIView *backgroundView = [[UIView alloc] initWithFrame:window.bounds]; backgroundView.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.8]; [window addSubview:backgroundView]; RewardSuccessWindow *successWindow = [[RewardSuccessWindow alloc] initWithFrame:CGRectZero]; [backgroundView addSubview:successWindow]; //縮放 successWindow.transform=CGAffineTransformMakeScale(0.01f, 0.01f); successWindow.alpha = 0; [UIView animateWithDuration:0.4 animations:^{ successWindow.transform = CGAffineTransformMakeScale(1.0f, 1.0f); successWindow.alpha = 1; }]; //3s 消失 double delayInSeconds = 3; dispatch_time_t delayInNanoSeconds = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); dispatch_after(delayInNanoSeconds, dispatch_get_main_queue(), ^(void){ [UIView animateWithDuration:0.4 animations:^{  successWindow.transform = CGAffineTransformMakeScale(.3f, .3f);  successWindow.alpha = 0; }completion:^(BOOL finished) {  [backgroundView removeFromSuperview]; }]; }); //開始粒子效果 CAEmitterLayer *emitterLayer = addEmitterLayer(backgroundView,successWindow); startAnimate(emitterLayer);}CAEmitterLayer *addEmitterLayer(UIView *view,UIView *window){ //色塊粒子 CAEmitterCell *subCell1 = subCell(imageWithColor(EmitterColor_Red)); subCell1.name = @"red"; CAEmitterCell *subCell2 = subCell(imageWithColor(EmitterColor_Yellow)); subCell2.name = @"yellow"; CAEmitterCell *subCell3 = subCell(imageWithColor(EmitterColor_Blue)); subCell3.name = @"blue"; CAEmitterCell *subCell4 = subCell([UIImage imageNamed:@"success_star"]); subCell4.name = @"star"; CAEmitterLayer *emitterLayer = [CAEmitterLayer layer]; emitterLayer.emitterPosition = window.center; emitterLayer.emitterPosition = window.center; emitterLayer.emitterSize = window.bounds.size; emitterLayer.emitterMode = kCAEmitterLayerOutline; emitterLayer.emitterShape = kCAEmitterLayerRectangle; emitterLayer.renderMode = kCAEmitterLayerOldestFirst; emitterLayer.emitterCells = @[subCell1,subCell2,subCell3,subCell4]; [view.layer addSublayer:emitterLayer]; return emitterLayer;}void startAnimate(CAEmitterLayer *emitterLayer){ CABasicAnimation *redBurst = [CABasicAnimation animationWithKeyPath:@"emitterCells.red.birthRate"]; redBurst.fromValue = [NSNumber numberWithFloat:30]; redBurst.toValue  = [NSNumber numberWithFloat: 0.0]; redBurst.duration = 0.5; redBurst.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; CABasicAnimation *yellowBurst = [CABasicAnimation animationWithKeyPath:@"emitterCells.yellow.birthRate"]; yellowBurst.fromValue = [NSNumber numberWithFloat:30]; yellowBurst.toValue  = [NSNumber numberWithFloat: 0.0]; yellowBurst.duration = 0.5; yellowBurst.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; CABasicAnimation *blueBurst = [CABasicAnimation animationWithKeyPath:@"emitterCells.blue.birthRate"]; blueBurst.fromValue = [NSNumber numberWithFloat:30]; blueBurst.toValue  = [NSNumber numberWithFloat: 0.0]; blueBurst.duration = 0.5; blueBurst.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; CABasicAnimation *starBurst = [CABasicAnimation animationWithKeyPath:@"emitterCells.star.birthRate"]; starBurst.fromValue = [NSNumber numberWithFloat:30]; starBurst.toValue  = [NSNumber numberWithFloat: 0.0]; starBurst.duration = 0.5; starBurst.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; CAAnimationGroup *group = [CAAnimationGroup animation]; group.animations = @[redBurst,yellowBurst,blueBurst,starBurst]; [emitterLayer addAnimation:group forKey:@"heartsBurst"];}CAEmitterCell *subCell(UIImage *image){ CAEmitterCell * cell = [CAEmitterCell emitterCell]; cell.name = @"heart"; cell.contents = (__bridge id _Nullable)image.CGImage; // 縮放比例 cell.scale = 0.6; cell.scaleRange = 0.6; // 每秒產生的數量 // cell.birthRate = 40; cell.lifetime = 20; // 每秒變透明的速度 // snowCell.alphaSpeed = -0.7; // snowCell.redSpeed = 0.1; // 秒速 cell.velocity = 200; cell.velocityRange = 200; cell.yAcceleration = 9.8; cell.xAcceleration = 0; //掉落的角度范圍 cell.emissionRange = M_PI; cell.scaleSpeed = -0.05; //// cell.alphaSpeed = -0.3; cell.spin  = 2 * M_PI; cell.spinRange = 2 * M_PI; return cell;}UIImage *imageWithColor(UIColor *color){ CGRect rect = CGRectMake(0, 0, 13, 17); UIGraphicsBeginImageContext(rect.size); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetFillColorWithColor(context, [color CGColor]); CGContextFillRect(context, rect); UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return image;}@end

領取獎勵成功提示框

#import <UIKit/UIKit.h>/// 領取獎勵成功提示框@interface RewardSuccessWindow : UIView@end
#import "RewardSuccessWindow.h"static CGFloat SuccessWindow_width = 270;static CGFloat SuccessWindow_hight = 170;@implementation RewardSuccessWindow (instancetype)initWithFrame:(CGRect)frame{ CGSize screenSize = [UIScreen mainScreen].bounds.size; self = [super initWithFrame:CGRectMake((screenSize.width - SuccessWindow_width)/2.0 , (screenSize.height - SuccessWindow_hight)/2.0, SuccessWindow_width, SuccessWindow_hight)]; if (self) { [self configSubViews]; } return self;}- (void)configSubViews{ self.backgroundColor = [UIColor whiteColor]; self.layer.cornerRadius = 10; self.layer.masksToBounds = YES; UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 45, SuccessWindow_width, 22)]; titleLabel.text = @"恭喜您,領取成功!"; titleLabel.font = [UIFont systemFontOfSize:19.0]; titleLabel.textAlignment = NSTextAlignmentCenter; [self addSubview:titleLabel]; UILabel *expLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 75, SuccessWindow_width, 43)]; expLabel.font = [UIFont systemFontOfSize:15]; expLabel.textAlignment = NSTextAlignmentCenter; [self addSubview:expLabel]; NSString *string = @"獲得經驗:+6"; NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:string]; [attributedString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:15] range:NSMakeRange(0, string.length)]; [attributedString addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"MarkerFelt-Thin" size:35] range:NSMakeRange(5,2)]; NSShadow *shadow =[[NSShadow alloc] init]; shadow.shadowOffset = CGSizeMake(1, 3); [attributedString addAttribute:NSShadowAttributeName value:shadow range:NSMakeRange(5,2)]; [attributedString addAttribute:NSForegroundColorAttributeName value:[UIColor yellowColor] range:NSMakeRange(5,2)]; expLabel.attributedText = attributedString; UILabel *bottomLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 135, SuccessWindow_width, 22)]; bottomLabel.text = @"可以在我的->我的獎勵中查看獲得獎勵"; bottomLabel.font = [UIFont systemFontOfSize:13.0]; bottomLabel.textAlignment = NSTextAlignmentCenter; bottomLabel.textColor = [UIColor colorWithRed:177/255.0 green:177/255.0 blue:177/255.0 alpha:1]; [self addSubview:bottomLabel];}@end


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美中文字幕一区二区三区亚洲 | av在线观| 欧美日韩1区2区 | 欧美一区在线观看视频 | 欧美日韩a∨毛片一区 | 午夜精品成人一区二区 | 99爱视频 | 午夜视频播放 | 国产一区在线观看视频 | 久久狠狠高潮亚洲精品 | 草草在线观看 | 懂色粉嫩av久婷啪 | 青草伊人网 | 在线成人毛片 | 国产呻吟| 成人一级在线 | 欧美成人视 | 亚洲电影免费观看国语版 | 4480午夜 | 午夜人体 | 精品一区二区三区在线视频 | 55夜色66夜色国产精品视频 | 久草最新网址 | 久久精品一区二区三区四区五区 | 欧美激情区| 亚洲成人在线免费 | 久久免费观看一级毛片 | 久久午夜神器 | 88xx成人精品视频 | 欧美18—19sex性hd按摩 | 中文字幕亚洲情99在线 | 黄色三级网站 | 午夜精品老牛av一区二区三区 | 亚洲人成中文字幕在线观看 | 毛片在线看免费 | 毛片网站网址 | 国产精品视频一区二区三区四区五区 | 中文字幕在线观看网址 | 日韩字幕| 国产精品99久久久久久宅女 | 在线成人www免费观看视频 |