2010-06-30 143 views

回答

1

是的,这是可能的。

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:1.0f]; 
[[self view] setBounds:CGRectMake(0.0f, 0.0f, 200.0f, 200.0f)]; 
[UIView commitAnimations]; 

这从它超过1秒的当前边界为200×200一个边界时,将动画视图控制器的视图。它不会改变原点 - 只是边界矩形的大小。这是隐式动画的方式。如果你想要一个更复杂的动画,请看看使用CABasicAnimation和显式动画。

+0

谢谢! 这就是我想要做的: 想像一下图片大小是300 x 300.我希望图片大小保持不变,但是要为图片的100 x 100特定点聚焦动画。 我搜索了一下,并通过文档和框架和界限的混淆。 – sooon 2010-06-30 02:00:54

+0

如果您想要更改位置和边界,您可以分别使用-setCenter:和-setBounds:来设置动画,或者您可以通过调用-setFrame来为该帧设置动画,从而使两者都具有动画效果。目前还不清楚你想要什么。如果您有覆盖图像的图层,则可以按照您所描述的方式对该图层进行动画处理以集中注意力。在这种情况下,您需要确保您的焦点图层具有-setMasksToBounds:设置为YES。 – 2010-06-30 02:18:04

+0

@MattLong:你能帮我解决我的问题吗> http://stackoverflow.com/questions/8353284/animate-image-inside-a-smaller-frame-in-ios?这与sooon寻找的东西类似。谢谢。 – neebz 2011-12-02 12:20:23

0

您是否尝试在图层内的图像的可见部分设置动画,图层本身是否保持大小和位置?

这就是CAScrollLayer。使用CAScrollLayer代替当前图层,并将图像渲染layerl作为子图层添加到CAScrollLayer。然后可以使用子图层的transform属性来实现该效果。