2010-08-02 154 views
0

我正在開發一個應用程序的孩子(記憶遊戲):轉動兩個相同的瓷磚(圖像),你可以刪除它們。問題是如何用動畫和只有uiimages轉動uiimages而不轉動包含它們的視圖。 我是否必須將每個uiimage放在一個小視圖中? 有什麼想法? PS:我沒有使用OpenGL在同一視圖中的多個uiimages

回答

1

對不起,第一次誤讀。使用UIImageViews爲每個瓷磚,然後動畫如下。

一個UIView只是一個視圖,所以你可以通過動畫方式爲任何視圖設置動畫。它相當簡單。

UIImageView *tileToFlip = self.[tiles objectAtIndex:3]; 
    CGRect frameOfTileToFlip = tileToFlip.frame; 
    UIImageView *newImageToShow = [[UIImageView alloc] initWithFrame:frameOfTileToFlip]; 
    // add the image to newImageToShow 

    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration: 1.0]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:newImageToShow cache:NO]; 
    [self.View addSubview:newImageToShow];  // I'm not sure if this is necessary 

    [UIView commitAnimations]; 
    [tileToFlip removeFromSuperView];  // remove it so you can add it back later 

或者,您可以使用CATransition,它可以給你更多的控制和不同的轉換。

+0

感謝您的回答,但通過動畫化包含uiiamges視圖的視圖,動畫將顯示在所有視圖上,而不僅僅是我想要的圖像。 – Jazzmanouch 2010-08-02 13:35:28

+0

對不起,如果我不清楚。你可以動畫JUST UIimageView有問題。創建一個填充了(例如)UIImageViews的4x4網格的視圖。在每個這些把你的'蓋'的形象。然後,當您想要翻轉其中一個時,創建一個新的UIImageView,並將其框架設置爲與您想要翻轉的UIImageView相匹配,然後將其添加到您的視圖並進行上述轉換。稍後,您可以改變流程並將原始「封面視圖」設置爲動畫。爲了提高效率,你需要保留'圖片'視圖。 (我編輯的代碼顯示我的意思secondUIImageView) – joelm 2010-08-02 21:40:16

0

你可以使用UIImageView的每個瓷磚。

相關問題