通過UIImage自身方法繪制圖片步驟
新建一個類痰娱,繼承自UIView(略)
創(chuàng)建定時器菩收,定時調(diào)用
setNeedsDisplay
在-(void)drawRect:(CGRect)rect方法實現(xiàn)下述幾步
加載圖片
通過UIImage自身方法繪制圖片到view上面
設(shè)置變化
- (void)awakeFromNib
{
// 創(chuàng)建定時器
// 如果每隔一段時間重繪,一般不使用NSTimer(因為不夠及時)// 每次屏幕自動刷新60次/秒,每次刷新的時候只會把當(dāng)前需要刷新的view重繪(即綁定了刷新標(biāo)識的view)
// setNeedsDisplay:重繪,實質(zhì)是給當(dāng)前控件綁定一個刷新的標(biāo)識,在下一次屏幕刷新就會重繪
CADisplayLink *link = [CADisplayLink displayLinkWithTarget:self selector:@selector(setNeedsDisplay)];
// 添加到主運行循環(huán),才會觸發(fā)這個定時器
[link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
// 每次刷新的時候調(diào)用,每次刷新就給當(dāng)前view綁定一個刷新標(biāo)示,表示每次刷新的時候都需要重新繪制當(dāng)前view
}
- (void)drawRect:(CGRect)rect {
static CGFloat snowY = 0;
// 加載圖片
UIImage *image = [UIImage imageNamed:@"雪花"];
// 繪制圖片
[image drawAtPoint:CGPointMake(50, snowY)];
// 設(shè)置變化
snowY += 10;
if (snowY > rect.size.height) {
snowY = 0;
}
}