是否有任何重複siri按鈕輝光動畫的方式?它看起來絕對華麗,但我現在不知道如何開始......有沒有在線預格式化的PNG旋轉?還是用CoreAnimation完成?重新創建Siri按鈕輝光動畫
回答
我相信Siri動畫是用CAEmitterLayer和CAEmitterCell製作的,然後用核心動畫製作動畫,但我可能完全錯誤。下面是一些模仿的效果代碼:
// create emitter layer
self.emitterLayer = [CAEmitterLayer layer];
self.emitterLayer.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height);
self.emitterLayer.emitterMode = kCAEmitterLayerOutline;
self.emitterLayer.emitterShape = kCAEmitterLayerLine;
self.emitterLayer.renderMode = kCAEmitterLayerAdditive;
[self.emitterLayer setEmitterSize:CGSizeMake(4, 4)];
// create the ball emitter cell
CAEmitterCell *ball = [CAEmitterCell emitterCell];
ball.color = [[UIColor colorWithRed:111.0/255.0 green:80.0/255.0 blue:241.0/255.0 alpha:0.10] CGColor];
ball.contents = (id)[[UIImage imageNamed:@"ball.png"] CGImage]; // ball.png is simply an image of white circle
[ball setName:@"ball"];
self.emitterLayer.emitterCells = [NSArray arrayWithObject:ball];
[self.view.layer addSublayer:self.emitterLayer];
float factor = 1.5; // you should play around with this value
[self.emitterLayer setValue:[NSNumber numberWithInt:(factor * 500)] forKeyPath:@"emitterCells.ball.birthRate"];
[self.emitterLayer setValue:[NSNumber numberWithFloat:factor * 0.25] forKeyPath:@"emitterCells.ball.lifetime"];
[self.emitterLayer setValue:[NSNumber numberWithFloat:(factor * 0.15)] forKeyPath:@"emitterCells.ball.lifetimeRange"];
// animation code
CAKeyframeAnimation* circularAnimation = [CAKeyframeAnimation animationWithKeyPath:@"emitterPosition"];
CGMutablePathRef path = CGPathCreateMutable();
CGRect pathRect = CGRectMake(0, 0, 200, 200); // define circle bounds with rectangle
CGPathAddEllipseInRect(path, NULL, pathRect);
circularAnimation.path = path;
CGPathRelease(path);
circularAnimation.duration = 2;
circularAnimation.repeatDuration = 0;
circularAnimation.repeatCount = 3;
circularAnimation.calculationMode = kCAAnimationPaced;
[self.emitterLayer addAnimation:circularAnimation forKey:@"circularAnimation"];
CAEmitterCell和CAEmitterLayer類有很多屬性,以便檢查出的文檔的更多。
我建議你用一個接一個顯示的PNG來做,這樣可以獲得流暢的動畫效果。這比編程一個編碼的動畫更容易。這個按鈕已經被Arron Hunt重新創建了:Siri Button Photoshop File
Btw。一個精靈動畫是很容易實現:
- (void)viewDidLoad {
[super viewDidLoad];
NSArray * imageArray = [[NSArray alloc] initWithObjects:
[UIImage imageNamed:@"1.png"],
[UIImage imageNamed:@"2.png"],
[UIImage imageNamed:@"3.png"],
[UIImage imageNamed:@"4.png"],
[UIImage imageNamed:@"5.png"],
[UIImage imageNamed:@"6.png"],
[UIImage imageNamed:@"7.png"],
[UIImage imageNamed:@"8.png"],
[UIImage imageNamed:@"9.png"],
[UIImage imageNamed:@"10.png"],
[UIImage imageNamed:@"11.png"],
[UIImage imageNamed:@"12.png"],
nil];
UIImageView * ryuJump = [[UIImageView alloc] initWithFrame:
CGRectMake(100, 125, 150, 130)];
ryuJump.animationImages = imageArray;
ryuJump.animationDuration = 1.1;
ryuJump.contentMode = UIViewContentModeBottomLeft;
[self.view addSubview:ryuJump];
[ryuJump startAnimating];
}
來源:http://www.icodeblog.com/2009/07/24/iphone-programming-tutorial-animating-a-game-sprite/
你有一點......因此,爲旋轉動畫實施足夠的PNG將是一種方法。我一直認爲這樣的事情應該用CoreAnimation來完成,因爲它更容易修改。鏈接很棒!我會看看這個! – konturgestaltung
查看我編輯的答案,瞭解精靈動畫的示例代碼。祝你好運 – Sbhklr
@Lightforce,任何人都可以爲這個PSD文件設置PNG圖像,我沒有任何Photoshop知識來提取圖像。任何人都可以上傳它,因此每個人都可以輕鬆地使用它。謝謝。 – user1227928
的UIImageView有一個名爲,您可以使用指定的圖像列表animationImages,它會按順序播放,像一個GIF動畫屬性。如果要精確控制效果,這可能是最簡單的方法。
CoreAnimation也可以通過使用單個圖像並使用CGAffineTransformMakeRotation(angle)爲其view.transform屬性設置動畫。
這也是我的第一個想法......用一個漸變和一個0的漸變和alpha形狀在一個和一個圓形形狀,然後旋轉的東西...但我不知道這是否會產生這種發光效果。 ..因爲它仍然看起來有點靜態? – konturgestaltung
您可能也想隨着時間的推移改變alpha,所以在旋轉時會淡入alpha和alpha,使其看起來像是稍縱即逝。 –
不錯.....應該這樣做.....我給它一個嘗試! – konturgestaltung
- 1. 創建帶水龍頭外部輝光動畫的android按鈕
- 2. iOS創建Siri圖標和動畫
- 3. 創建動畫按鈕
- 4. 重新創建動態創建的按鈕
- 5. 動畫輝光過濾器在Flash動作3
- 6. 創建新按鈕
- 7. 重新創建活動時重置所選單選按鈕
- 8. 單擊按鈕更新/重畫畫布
- 9. 新聞動畫html5按鈕
- 10. 在Titanium SDK中重新創建動畫
- 11. BBC輝光可排序:自定義動畫
- 12. 按鈕在創建移動的新按鈕時停止移動
- 13. 如何在Google上創建類似Google +1按鈕的微光動畫
- 14. 編程創建光滑的3d按鈕
- 15. 使用xaml或C#創建光動畫
- 16. 重複動畫按鈕時按
- 17. WPF,在按鈕樣式的Style.Triggers中創建畫筆動畫
- 18. 在iOS中重新創建Siri類似的曲線引號
- 19. 輝光動態生成線有效
- 20. 單擊後退按鈕後重新創建活動狀態
- 21. 如何創建簡單的輝光效果與PixelBender
- 22. svg模糊過濾器創建外部輝光不工作
- 23. 在Highcharts中,如何在solidgauge中創建輝光/陰影效果?
- 24. CSS:在圖像周圍創建白色輝光
- 25. 創建新按鈕Android
- 26. 按鈕按動畫
- 27. 動態創建按鈕textview按鈕
- 28. 動畫按鈕
- 29. 當我點擊一個按鈕時,重新啓動動畫
- 30. 如何創建一個流暢的動畫流動按鈕?
self.fireEmitter缺少這裏的上下文 – Pascalius
我忘了在複製代碼時編輯這些行。它應該是self.emitterLayer。我修復了它。 – jlajlar
您忘了提及「ball.png」應該是5x5像素左右... – Idan