2014-03-03 68 views
0

我使用如何防止子视图自动调整大小操作的UIView动画?

[UIView beginAnimations:nil context:NULL]; 

动画一个UIViewController的帧。该视图控制器包括一个UITableViewUITableView的单元格是自定义子视图,它也具有自动调整掩码集。

在为父视图控制器设置动画效果的同时,帧中的更改也会导致该单元格内容的动画也是预期的,但不是我想要的。我希望这些单元立即设置新框架,并且我希望整个viewcontroller内容作为一个块移动(动画),而不是作为独立对象。

我不能专门为内部内容设置框架,因为这不是单个视图控制器。有7个视图控制器是动画(滑动动画)

PS:我没有寻找一个替代组件的视图控制器的过渡,因为我正在做自定义动画。

有没有办法停止一个特定的UIView或UIViewController自动执行操作的动画?

更新

使用transitionWithView还是引起了与子视图来自动调整大小动画。堆栈跟踪:

+[UIView(UIViewAnimationWithBlocks) transitionWithView:duration:options:animations:completion:]() 
+[UIView(UIViewAnimationWithBlocks) _setupAnimationWithDuration:delay:view:options:factory:animations:start:animationStateGenerator:completion:]() 
-[UIView(Geometry) _applyAutoresizingMaskWithOldSuperviewSize:]() 
-[UIView(Geometry) setFrame:]() 
+0

u能为子视图框计算新值动画结束前? –

+0

看看我更新的答案。 –

回答

0

好的。在这里我疯狂的想法:

1)将所有子视图阵列

2)从上海华

3删除所有子视图)创建新的视图大小一样老,让她透明

4)从数组添加所有子视图新视图

5)应用动画具有持续时间0(子视图新的视图将立即调整大小)

6)应用动画旧观点不同,需要时间

7)移动的子视图回到旧观点时,从步骤6动画没有结束

+0

我已经更新了与transitionWithView有关的问题。不幸的是,这也无济于事。 – frankish

相关问题