我想創建一個類似於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. UILabel左右動畫
- 2. 動畫圖像從左到右滾動
- 3. 的jQuery - 圖片動畫(從右到左)
- 4. 掃描視圖左右
- 5. 樹的左或右視圖
- 6. 如何使用Swift將自定義視圖右至左右左右移動
- 7. 如何從左到右和從右到左動畫背景圖像
- 8. 左的iOS取消隱藏視圖向右動畫
- 9. 模擬左/右滑動動畫轉換
- 10. 動畫移動到左側和右側?
- 11. 將視圖擴展到左側,動畫
- 12. 動畫縮小視圖到左上角
- 13. 離子2 - ( - 左右)
- 14. 滾動子視圖左右,但沒有向上或向下
- 15. 動畫寬度從左到右
- 16. Jquery動畫從左到右的寬度
- 17. jQuery的動畫()從右到左的.hover
- 18. 動畫文字填充從左到右
- 19. 區分畫廊中的左右滾動
- 20. jquery動畫從左到右不工作
- 21. iOs將動畫從左向右(水平)
- 22. jQuery簡單的左右動畫
- 23. 與動畫從左到右的塞格
- 24. 防止默認動畫(從右到左)
- 25. 動畫div元素從左到右
- 26. 動畫從右側和左側查看
- 27. UIImageView從左到右動畫查看
- 28. ViewPager右/左滾動
- 29. Android左右滑動?
- 30. 左右滑動UIView
爲什麼'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