iphone - UIView的动画: how to reset the position

标签 iphone cocoa-touch animation uiview

我有一个非常基本的初学者问题,涉及我设置动画的 UIView 的位置。

如果我这样称呼

[pageShadowView setFrame:CGRectOffset([pageShadowView frame], 100, 0)];

然后为其设置动画

[pageShadowView setFrame:CGRectOffset([pageShadowView frame], -100, 0)];

我基本上会将 UIView 从屏幕右侧移动到左侧。但是,如果我在第二行代码中指定 -150,并且重复这些动画几次,我的对象将逐渐向左移动。

恐怕这是一个非常基本的问题,但是有没有办法指定固定的 X 坐标而不是定义相对位置? IE。假设我一直想将对象从 x = 200 移动到 x = 100。

我的整个方法如下所示:

[pageShadowView setFrame:CGRectOffset([pageShadowView frame], 100, 0)];

[UIView beginAnimations:@"shadowMove" context:nil]; // Begin animation
    [UIView setAnimationDuration:2.5];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    [pageShadowView setFrame:CGRectOffset([pageShadowView frame], -100, 0)];        
    [UIView commitAnimations];

最佳答案

您可以使用 setFrame 设置任何矩形...只需使用 CGRectMake() 创建一个具有绝对位置的矩形即可。

例如

pageShadowView.frame = CGRectMake( 
                            x, 
                            y,
                            CGRectGetWidth(pageShadowView.frame),
                            CGRectGetHeight(pageShadowView.frame)
                        );

关于iphone - UIView的动画: how to reset the position,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5503579/

相关文章:

objective-c - 检查对象是否符合 Objective-C 中的两个独立协议(protocol)

ios - 以编程方式滚动 UIScrollView 然后用手动滚动覆盖

jquery - 单击实际元素以启动动画

ios - Swift:动画拉伸(stretch)和收缩图像

ios - 自定义 UITextInput 实现不显示多阶段输入建议

iphone - 圆形矩形按钮后面的黑色衬垫

iphone - 在 iPhone 应用程序中嵌入连字字体

ios - Restkit请求不发送参数

iphone - Objective-C:NSClassFromString() 与导航 Controller 一起使用?

iPhone - UIScrollView ...检测触摸坐标