簡體   English   中英

動畫立即完成iOS

[英]Animation completes immediately iOS

我正在創建一個應用程序,其中有一個由視圖控制器管理的主視圖和一個由另一個視圖控制器管理的設置的第二個視圖。

由於UI / UX的原因,我在一個應用程序中使用了Container View Controller,在該應用程序中,觸摸按鈕后,設置的視圖從屏幕底部向上滑動到大約一半的高度。 屏幕的上半部分仍顯示先前的主視圖。

按下按鈕或用戶撤消向上滑動的View Controller之后,一切都運行良好,我保留了其中一個視圖(因為它仍然可見),將View Controller保留在內存中,但我將其從View Controller中刪除層次結構並切換到另一個。

現在的問題是,當我按下按鈕以顯示設置視圖控制器時,主視圖上的所有非常簡單的動畫(例如,對UILabel的frame屬性進行動畫處理)的行為都會異常。 動畫幾乎立即完成。

我在StackOverflow上讀到一個答案,指出以下事實:更改transform屬性將使其無法使用frame屬性進行動畫處理,並且需要與center屬性一起進行動畫處理。

即使我沒有顯式更改任何對象的transform屬性(我對此屬性不是很熟悉),但我仍嘗試使用center屬性進行動畫處理,但動畫速度仍然過快。

這是一個動畫示例,該動畫在按下設置按鈕后立即完成,但在其他情況下效果很好:

            [UIView animateWithDuration:1.4 animations:^{

            self.alarmTimeLabel.center = CGPointMake(self.alarmTimeLabel.center.x, self.alarmTimeLabel.center.y + 200);


        }];

感謝您的輸入

現在,動畫可以使用較舊的方法來實現相同的結果。

        [UIView beginAnimations:@"test" context:nil];

        [UIView setAnimationDuration:2.0];

        self.alarmTimeLabel.center = centerAlarmTimeLabel;
        self.amOrPm.center = centerAmOrPm;



        [UIView commitAnimations];

修復了錯誤! 我不知道為什么即使使用center屬性,更新動畫的簡單方法也不起作用。

暫無
暫無

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

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