欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

IOS如何實現(xiàn)簽到散花效果

小編給大家分享一下IOS如何實現(xiàn)簽到散花效果,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

為富寧等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及富寧網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站制作、網(wǎng)站設(shè)計、外貿(mào)網(wǎng)站建設(shè)、富寧網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

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

IOS如何實現(xiàn)簽到散花效果

IOS如何實現(xiàn)簽到散花效果

散花特效

#import <Foundation/Foundation.h>
/// 領(lǐng)取獎勵成功
@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;
 // 每秒產(chǎn)生的數(shù)量
 // 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

領(lǐng)取獎勵成功提示框

#import <UIKit/UIKit.h>
/// 領(lǐng)取獎勵成功提示框
@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 = @"恭喜您,領(lǐng)取成功!";
 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 = @"獲得經(jīng)驗:+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如何實現(xiàn)簽到散花效果”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

當(dāng)前題目:IOS如何實現(xiàn)簽到散花效果
當(dāng)前路徑:http://aaarwkj.com/article28/gjdojp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)自適應(yīng)網(wǎng)站、企業(yè)網(wǎng)站制作、網(wǎng)站建設(shè)網(wǎng)站導(dǎo)航、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
免费看欧美黄片在线看| 亚洲视频在线视频看视频在线| 日本在线高清精品人妻| 尤物在线免费观看视频| 中文字幕乱码日韩一区| 国产精品一久久香蕉产线看| 亚洲一区二区日本久久| 精品久久久久久久久999| 中文字幕一区二区中文字幕| 欧美三级黄片免费视频| 成人午夜激情四射av| 国产亚洲欧美日韩中文字幕| 亚洲国产精品区一区二区| 麻豆资源视频在线观看| 亚洲高清中文字幕专区| 激情五月综合开心五月| 国产黄色一区二区三区| 午夜视频在线观看黄片| 给我搜一个一级黄色片| 国产精品亚洲在钱视频| 91久久精品国产一区蜜臀| 日韩在线观看视频有码| 欧美日韩黄片免费在线观看| av毛片在线观看地址| 97碰碰视频在线观看| 亚洲另类欧美日韩中文字幕| 性生活视频在线观看免费| 操小姑娘国产精品视频| 亚洲奇米精品一区二区| 亚洲欧美日韩精品成人| 免费97久久人妻一区精品| 中文字幕熟妇人妻av在线| 久久97精品人人做人人爽| 日韩在线国产精品一区| 精品欧美一区二区三久久| 欧美精品日本一区二区| 中文字幕精品高清中国| 无遮挡无掩盖的免费网站| 精品少妇人妻久久av免费| 精品少妇一区二区三区| 亚洲毛片一区在线播放|