我想創建一個類似於Android中的QuickActionBar的視圖,當點擊左上角的按鈕時只是簡單地打開它,但子視圖看起來好像它們來自右側,離開牆壁,並反彈回來,然後進駐。 視圖正在出現,但我無法爲子視圖設置動畫..左右左動畫子視圖
Q
左右左動畫子視圖
0
A
回答
0
CAKeyframeAnimation爲您的問題尋找正確答案。我之前已經編寫了這個動畫功能,讓標籤在屏幕上滑動。我爲你的目的稍微更新了xValues,但很可能你必須和他們一起玩。同樣在擊中牆壁後,您可能想要玩scale.y值,您可以輕鬆地將其集成到關鍵幀動畫中。
+ (void) slideAcrossScreen:(UIView *) view Duration:(CGFloat) duration FromLeft:(BOOL) fromLeft
{
//This is to make it work with both left-right-left and right-left-right anims.
CGFloat slideLength = fromLeft ? -view.frame.origin.x : [[UIScreen mainScreen] bounds].size.width - (view.frame.origin.x + view.frame.size.width);
CAKeyframeAnimation *anim = [CAKeyframeAnimation animationWithKeyPath:@"transform.translation.x"];
NSArray *xValues =
@[[NSNumber numberWithFloat:view.bounds.origin.x],
[NSNumber numberWithFloat:view.bounds.origin.x + 10 * slideLength/10],
[NSNumber numberWithFloat:view.bounds.origin.x + 10 * slideLength/10],
[NSNumber numberWithFloat:view.bounds.origin.x + 9 * slideLength/10]];
[anim setValues:xValues];
NSArray *timeFrames =
@[[NSNumber numberWithFloat:0.0],
[NSNumber numberWithFloat:0.85],
[NSNumber numberWithFloat:0.9],
[NSNumber numberWithFloat:1.0]];
[anim setKeyTimes:timeFrames];
[anim setDuration:duration];
[anim setFillMode:kCAFillModeForwards];
[anim setRemovedOnCompletion:FALSE];
[view.layer addAnimation:anim forKey:@"slide"];
}
0
我只是花了15分鐘來解決你的麻煩,因爲動畫視圖總是有趣的部分。所以這裏是片段,你將你的view
傳遞給它,它會動畫。當然,如果你願意,你可以添加更多。
+ (void) animateView : (UIView *) view{
__block CGRect frame = view.frame;
frame.origin.x = - 320;
[view setFrame:frame];
[UIView animateWithDuration:1.5f animations:^{
frame.origin.x = 10.0f;
frame.size.width = 310.0f;
[view setFrame:frame];
} completion:^(BOOL finished) {
if (finished) {
[UIView animateWithDuration:0.5 animations:^{
frame.origin.x = 0.0f;
frame.size.width = 320.0f;
[view setFrame:frame];
} completion:^(BOOL finished) {
}];
}
}];
}
乾杯。
相關問題
- 1. iOS「從左/右滑入」視圖動畫
- 2. UILabel左右動畫
- 3. 動畫圖像從左到右滾動
- 4. Pushviewcontroller動畫從右到左
- 5. 動畫從左到右
- 6. android動畫從右到左
- 7. SVG動畫從左到右
- 8. UIImageView動畫從左到右
- 9. D3折線圖動畫左至右
- 10. 的jQuery - 圖片動畫(從右到左)
- 11. UISwipeGestureRecognizer方向(左/右)與4子視圖
- 12. 動畫從左到右和從右到左
- 13. 如何從左到右和從右到左動畫一個ImageView
- 14. 樹的左或右視圖
- 15. 掃描視圖左右
- 16. 如何使用Swift將自定義視圖右至左右左右移動
- 17. iOS:autolayout從左到右移動視圖
- 18. 如何從左到右和從右到左動畫背景圖像
- 19. 左的iOS取消隱藏視圖向右動畫
- 20. 左側和右側jQuery動畫運動
- 21. 模擬左/右滑動動畫轉換
- 22. 動畫移動到左側和右側?
- 23. ios增長動畫CGAffineTransformMakeScale左右移動
- 24. 動畫沒有jQuery,左右滑動
- 25. 左向右運動的動畫
- 26. 浮動左右
- 27. 左右滾動圖像
- 28. 左右滑動圖像android
- 29. 離子2 - ( - 左右)
- 30. 動畫縮小視圖到左上角
爲什麼'timesFrames'不包含0.0到0.85之間的值? – Subbu 2013-04-22 14:16:53
你可以編輯它們,只要你喜歡0.85是它撞牆的時間。時間與上面定義的xValues相關,所以在0.0時刻它將處於初始位置,然後直到0.85,它將以固定的速度滑動直到碰到牆壁。 – guenis 2013-04-22 14:31:09