【问题标题】:Options inside begin animation and context开始动画和上下文中的选项
【发布时间】:2014-12-19 23:02:51
【问题描述】:

我正在研究使用 UIView 开始动画,通常在大多数教程中它们总是使用相同的语法:

[UIView beginAnimations:nil context:NULL];

我在代码中看到,我们可以在 beginAnimation 中放置一个 nsstring,并在上下文中放置一个 void 函数,对吗?为此,我这样做:

[UIView beginAnimations:@"Will Start" context:@selector(start)];

-(void)start{

NSLog(@"Animation Running");

}

但是 nsstring 'will start' 没有显示给我,并且 void 函数 'start' 没有被调用。我不知道我是否以错误的方式这样做,但是那些选项 BeginAnimation 的 NSString 类型和类型 void 的类型上下文是什么?谁能给我一个例子?

【问题讨论】:

  • 你甚至不应该使用那种方法。你一定在看一些相当古老的教程。来自 Apple 的 beginAnimations 文档:“在 iOS 4.0 及更高版本中不鼓励使用此方法。您应该使用基于块的动画方法来指定您的动画。”

标签: ios objective-c uiview beginanimations


【解决方案1】:

您似乎不太了解beginAnimations:context: 方法的工作原理。首先,animationId 是一个仅标识动画的 NSString。其次,您传递给context 的数据实际上就是您想要的任何数据。函数指针、对象等。

所以你在调用[UIView beginAnimations:context:] 之后要做的是发送不同的setAnimation 消息来设置属性,将视图值更改为你最终想要达到的值(位置、颜色、alpha),最后发送@ 987654327@留言。

here 是一个很好的教程,可以更详细地解释这一点。

【讨论】:

    最近更新 更多