1. 程式人生 > 其它 >IOS開發之——繪製雪花(79)

IOS開發之——繪製雪花(79)

技術標籤:IOSios

一 概述

本文通過自定義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];
       
}
效果圖