我想知道如何在地圖上實現藍色球與當前位置的脈動環,但沒有mapview。IOS動畫脈衝圈如地圖上的藍色球
基本上我想知道在正常UIView(或我的自定義視圖)上有一個帶有脈動環的藍色球的最佳方式,無論用戶何時觸摸屏幕,該觸摸都是藍色球的中心。
我有兩個想法,首先我可以實現一個動畫,但我無法做到,但它可能是可能的。 第二,我可以得到一系列圖像,例如gif,並在用戶觸摸的任何地方顯示。
哪一個是最好的選擇?還是有更好的選擇?
謝謝。
我想知道如何在地圖上實現藍色球與當前位置的脈動環,但沒有mapview。IOS動畫脈衝圈如地圖上的藍色球
基本上我想知道在正常UIView(或我的自定義視圖)上有一個帶有脈動環的藍色球的最佳方式,無論用戶何時觸摸屏幕,該觸摸都是藍色球的中心。
我有兩個想法,首先我可以實現一個動畫,但我無法做到,但它可能是可能的。 第二,我可以得到一系列圖像,例如gif,並在用戶觸摸的任何地方顯示。
哪一個是最好的選擇?還是有更好的選擇?
謝謝。
試試這個:
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(200, 200, 100, 100)];
view.backgroundColor = [UIColor blueColor];
view.layer.cornerRadius = 50;
[self.view addSubview:view];
CABasicAnimation *scaleAnimation = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
scaleAnimation.duration = 0.2;
scaleAnimation.repeatCount = HUGE_VAL;
scaleAnimation.autoreverses = YES;
scaleAnimation.fromValue = [NSNumber numberWithFloat:1.2];
scaleAnimation.toValue = [NSNumber numberWithFloat:0.8];
[view.layer addAnimation:scaleAnimation forKey:@"scale"];
設置參數,只要你喜歡,修改的效果。
編輯:
您必須添加QuartzCore
框架,包括<QuartzCore/QuartzCore.h>
這個工作。
以編程方式執行動畫而不是使用圖像序列是更好的方法(並且它也是Apple如何做的)。它具有許多優點,尤其是性能要好得多(您的圖像序列動畫不可能在60FPS下運行!)。
您可以通過多種方式實現此動畫:最簡單的方法是在圖像編輯器中創建環形圖形,然後創建一個可用於保存該動畫的圖形。然後,您可以簡單地對視圖的比例,alpha和幀屬性(確保您的圖像視圖設置爲按比例調整圖像大小)進行動畫處理。爲確保您的動畫動畫無限重複,您可以設置UIView動畫重複屬性。你的中央'藍色球'可以是一個單獨的UIImageView
覆蓋頂部。
UIView
動畫非常簡單,蘋果有很多示例代碼可以幫助你。你只需將你在動畫塊中動畫的屬性以及動畫參數(持續時間,重複等)放在一起,iOS就會完成剩下的動作。在StackOverflow上搜索'UIView動畫'會給你很多很多的問題,可能會有所幫助。
嘗試一下本作SWIFT
let view:UIView = UIView(frame: CGRectMake(200, 200, 100, 100))
view.layer.cornerRadius = 50
view.backgroundColor = UIColor.blueColor()
self.view.addSubview(view)
let scaleAnimation:CABasicAnimation = CABasicAnimation(keyPath: "transform.scale")
scaleAnimation.duration = 0.5
scaleAnimation.repeatCount = 30.0
scaleAnimation.autoreverses = true
scaleAnimation.fromValue = 1.2;
scaleAnimation.toValue = 0.8;
view.layer.addAnimation(scaleAnimation, forKey: "scale")
scaleAnimation.repeatCount = 30.0只會重複動畫30次迭代。使用scaleAnimation.repeatCount = HUGE使動畫無限期地重複。 – leafcutter
非常感謝你,這解決了我所有的問題。 我不知道layer有那個cornerRadius屬性。 –
我該如何接受=)。 對不起,這裏從來沒有問過太多,只是搜索了人們已經發布的內容。 –
還有一件事,如果我想使弧不完全完成? 從0到PI? 我確實設法使用CGContextAddArc來做到這一點,但我無法設置邊框寬度。 剛剛發現我自己=),無論如何,謝謝。 答案:CGContextSetLineWidth –