使用UIScrollView子视图调整UIView的大小

gre*_*gor 3 animation objective-c uiscrollview uiview

大家好!关于UIView使用UIScrollViewas子视图调整派生的大小,我有一个很大的问题.

layoutSubviews消息中我设置了UIScrollView子视图的框架.的UIScrollView包含一个UIImageView与可移动/捏和,以便在一个大的图像.初始contenSizeUIScrollView是初始的图像尺寸.

到现在为止还挺好.移动和捏图像效果很好.现在我必须改变UIView框架(在我的应用程序中最大化UIView).我在动画块(beginAnimations/ commitAnimations)中这样做.所以我设置新框架(将更新宽度和高度)然后我调用[myView layoutIfNeeded]强制UIScrollView在layoutSubviews我的视图的消息中更新其框架.

UIView动画纠正其新的框架,如果contentOffsetUIScrollView是当前x 0, y 0UIScrollView帧将被正确更新.但这里是我的问题:如果contentOffsetUIScrollView比我的大 x 0, y 0UIScrollView,从左上角到其最终地位将"幻灯片".

我希望UIScrollView使用父框架正确调整其框架的大小,并将内容(在我的情况下UIImageView)对齐.但我怎么能实现呢?

小智 10

经过数小时的网络研究,我找到了解决这个问题的方法:

[UIView setAnimationBeginsFromCurrentState: YES];
Run Code Online (Sandbox Code Playgroud)

这将为当前状态下的所有图层设置动画.