簡體   English   中英

iOS-使用CATransition在兩個UIView之間正確設置動畫

[英]iOS - properly animate between two UIViews using CATransition

我的屏幕上已經有一個UIView,並且我希望從四個方向(左,右,上,下)之一“滑入”新的UIView,具體取決於我檢測到的滑動手勢類型。 獲取swipegesture信息已經完成,這不是問題,但是現在,如果我向左滑動,那么我希望另一個UIView實例從右側“滑入”。

具體來說,隨着新的UIView從右側滑入,舊的UIView開始滑出視圖,並向左滑動,直到完全脫離視圖。 換句話說,我希望在動畫過程中可以看到兩個UIView,直到不再可見原始UIView為止。 例如,在iPad上,您可以看到相同類型的效果,就像您在主屏幕上一樣,向左滑動-當主屏幕滑出視圖時,它會從右側在應用程序圖標的另一個屏幕中滑動。剩下。 我要實現的唯一警告是您無法停止過渡中期。

無論如何,這里是我到目前為止所擁有的代碼-我認為我已經接近了,但是想獲得一些幫助,也許可以完成我在這里需要完成的工作:

    UIView *newView = [[UIView alloc] init];
    newView.frame = CGRectMake(0, 0, TileView.frame.size.width, TileView.frame.size.height);
    [TileView addSubView:view];
    CATransition *transitionAnimation = [CATransition animation];
    [transitionAnimation setDuration:1];
    [transitionAnimation setType:kCATransitionPush];
    [transitionAnimation setSubtype:kCATransitionFromRight];
    [transitionAnimation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];

UIView TileView是我的viewController的子視圖。 是否還需要對newView進行其他設置,以使所有內容都與屏幕位置匹配? 認為 KCATransitionPush是我要尋找的動畫類型,但不是100%肯定。

對我在這里缺少的任何幫助都會有所幫助。

嘗試同時設置這兩個屬性。

transitionAnimation.fromValue=[NSValue valueWithCATransform3D:CATransform3DMakeTranslation(0.0, 0.0, 0.0)];
transitionAnimation.toValue=[NSValue valueWithCATransform3D:CATransform3DMakeTranslation(excursion, 0.0, 0.0)];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM