ios15的雪花场景

Xnip2021-12-12_13-42-15.jpg
#import "ViewController.h"
static long steps;
#define degree2angle(angle) ((angle) * M_PI / 180)
@interface ViewController ()
@property(nonatomic,strong)CADisplayLink *timer;
@end
@implementation ViewController
- (void)viewDidLoad {
self.timer = [CADisplayLink displayLinkWithTarget:self selector:@selector(snow)];
[self.timer addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
}
//-(void)update{
// steps++;
// if(steps % 5 == 0){
// [self snow];
// }
//}
-(void)snow{
UIImage *snowImage = [UIImage imageNamed:@"snow"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:snowImage];
CGFloat scale = arc4random_uniform(40) / 100.0;
imageView.transform = CGAffineTransformMakeScale(scale, scale);
CGSize winSize = self.view.bounds.size;
CGFloat x = arc4random_uniform(winSize.width);
CGFloat y = -imageView.bounds.size.height * 0.5;
imageView.center = CGPointMake(x, y);
[self.view addSubview:imageView];
[UIView animateWithDuration:10.0F animations:^{
CGFloat toX = arc4random_uniform(winSize.width);
CGFloat toY = winSize.height + imageView.bounds.size.height * 0.5;
imageView.center = CGPointMake(toX, toY);
imageView.transform = CGAffineTransformRotate(imageView.transform, degree2angle(arc4random_uniform(360)));
imageView.alpha = 0.3;
} completion:^(BOOL finished) {
[imageView removeFromSuperview];
}];
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
[self.timer invalidate];
}
- (BOOL)prefersStatusBarHidden{
return YES;
}
@end
网友评论