簡體   English   中英

彼此重疊的兩個視圖之間的淡入淡出-iOS

[英]Two views, on top of each other, cross fade between - iOS

我以前曾多次遇到此問題,似乎無法提出一個很好的解決方案。

我需要在視圖控制器的一小部分中包含2個視圖(可能超過2個視圖),兩個視圖都顯示在同一位置。 我需要在一個按鈕上輕按這兩個視圖(交叉淡入淡出)。 這兩個視圖中都有按鈕,這些按鈕需要鏈接到顯示它們的視圖控制器中的IBAction(我認為這排除了為每個視圖使用單獨的視圖控制器的可能性)。

是否有任何簡單或優雅的解決方案,而不會用看不見的視圖阻塞情節提要/ nib文件? 我很好奇看到不同的人如何解決這個問題。

干杯,戴夫。

您的問題僅涉及UI動畫,因此不應通過添加新的視圖控制器來解決。 下面的代碼應該有所幫助:

-(void)buttonTapped {
    [UIView animateWithDuration:0.5 animations:^{
         // self.view1 and self.view2 are views that need to be switching
         self.view1.alpha = 0;
         self.view2.alpha = 1;
    }];
}

您要設置動畫的視圖可以用代碼創建,而不會“阻塞情節提要”。 但是,那么您就無法從視覺上設計該特定視圖。 我個人並不喜歡這一點。

我過去所做的一件事是將非默認視圖設計為筆尖中的獨立部分。 (將視圖拖動到設計圖面上,使其自由成形,然后根據需要進行設計。)您可以將它們連接到動作方法並為其設置出口,就像主視圖中的常規子視圖一樣。

然后,在處理視圖過渡的按鈕操作方法中,將隱藏視圖上的框架設置為當前可見的框架。 您可以根據需要設置動畫。

這種方法使我可以直觀地進行設計,但不會使主視圖帶有一堆隱藏視圖。 唯一的花費就是幀和轉換代碼的位數。 這可能對您有用。

暫無
暫無

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

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