IOS開發之——繪製雪花(79)
阿新 • • 發佈:2021-01-16
一 概述
本文通過自定義View,實現下雪的效果
- 剛開始時,雪花位於螢幕原點(左上角)
- 每隔0.1s,雪花的高度增加5向下移動
- 到達螢幕底部時,重新回到螢幕原點(左上角)
二 功能實現
2.1 設定雪花移動的高度
@interface MyView ()
@property (nonatomic,assign) CGFloat snowY;
@end
2.2 繪製雪花降落時的偏移
- (void)drawRect:(CGRect)rect { // Drawing code _snowY+=5; UIImage *image=[UIImage imageNamed:@"雪花"]; [image drawAtPoint:CGPointMake(0, _snowY)]; //[image drawAtPoint:CGPointZero]; if (_snowY>=520) { _snowY=0; } }
2.3 檢視載入後間隔0.1s繪製圖形
2.3.1 定時功能繪製
程式碼
[NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(setNeedsDisplay) userInfo:nil repeats:YES];
效果圖(有卡頓)
2.3.2 螢幕重新整理時繪製
程式碼
- (void)awakeFromNib { //螢幕重新整理的時候呼叫 CADisplayLink *link=[CADisplayLink displayLinkWithTarget:self selector:@selector(setNeedsDisplay)]; [link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode]; }