2014-12-10 75 views
0

我有一個大約2/3的屏幕區域的屏幕區域,在這個區域有兩個對象一個MKMapView和一個UITableView。按下按鈕時,我想用小小的大小調整動畫來調換兩者之間的大小。該CGRects計算,像這樣:UIView動畫隨機展開

//Calculate initial screen item sizes 
int mapTypeButtH=20; 

int baseX=5; 
int baseY=self.but_mapHybrid.frame.origin.y+self.but_mapHybrid.frame.size.height; 
int baseW=310; 
int availableSpace=self.view.frame.size.height-baseY; 

posMapMinor=CGRectMake(baseX,baseY,baseW,(availableSpace/10)*2); 
posListMajor=CGRectMake(baseX,baseY+((availableSpace/10)*2),baseW,(availableSpace/10)*8); 

posMapMajor=CGRectMake(baseX,baseY,baseW,(availableSpace/10)*8); 
posListMinor=CGRectMake(baseX,baseY+((availableSpace/10)*8),baseW,(availableSpace/10)*2); 

這一切都出來罰款,我檢查了它產生的值,然後按下按鈕我曾嘗試配置來執行動畫本身的所有方式,還沒有工作正常。目前的嘗試是,像這樣:

[UIView animateWithDuration:.5 delay:0 options: UIViewAnimationOptionCurveEaseOut animations:^{ 
    self.mapView.frame=posMapMinor; 
}completion: ^(BOOL finished){ 
    [UIView animateWithDuration:.5 delay:0 options: UIViewAnimationOptionCurveEaseOut animations:^{ 
     self.tbl_actions.frame=posListMajor; 
    }completion: ^(BOOL finished){ 

    }]; 
}]; 

似乎無論什麼我嘗試當我執行的動畫,它會以某種方式出現故障,不管是隻有一個動畫播放,或兩者的演奏,然後回彈至位置。我錯過了文檔中的一些基本教訓嗎?這似乎是一項基本任務。任何關於這個問題的提示或想法將不勝感激。

更新:我已經進一步縮小了這個問題,它會出現,如果只有一個動畫被激發,動畫播放正常,視圖保持原位。但是,如果兩者同時被呼叫或者被鏈接(即使拖延),兩者都可以放鬆並且視圖可以回到它們所在的位置。結果是奇怪的排序閃爍,然後什麼也沒有。

回答

0

我知道是什麼導致了這個問題,但是我發現的解決方案是將UITableView包裝在UIView中,並在UIView上執行動畫。一旦我做到了,它完美運作。