Ios UIView动画随机展开

Ios UIView动画随机展开,ios,objective-c,uitableview,animation,mkmapview,Ios,Objective C,Uitableview,Animation,Mkmapview,我有一个屏幕区域,大约是整个屏幕区域的2/3,在这个区域中有两个对象,一个是MKMapView,一个是UITableView。在按下按钮时,我想用一点调整大小的动画在这两者之间交换大小。CGRECT的计算如下: //Calculate initial screen item sizes int mapTypeButtH=20; int baseX=5; int baseY=self.but_mapHybrid.frame.origin.y+self.but_mapHybrid.frame.si

我有一个屏幕区域,大约是整个屏幕区域的2/3,在这个区域中有两个对象,一个是MKMapView,一个是UITableView。在按下按钮时,我想用一点调整大小的动画在这两者之间交换大小。CGRECT的计算如下:

//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){

    }];
}];
似乎无论我在执行动画时尝试什么,它都会以某种方式出现故障,无论是只播放一个动画,还是同时播放两个动画,然后快速恢复到原来的位置。文档中是否有我错过的一些基本课程?这似乎是一项基本的任务。任何关于这个问题的提示或想法都将不胜感激


更新:我进一步缩小了问题的范围,如果只触发了一个动画,动画将正常播放,视图将保持在原位。但是,如果同时调用或链接这两个视图(即使有延迟),则展开视图和视图都会返回到原来的位置。结果是奇怪的排序闪烁,然后什么都没有。

我知道是什么导致了这个问题,但是我找到的解决方案是将UITableView包装在UIView中,并在UIView上执行动画。一旦我这么做了,它就工作得很好