我在UIView上有一个动画块,想要传递我的animationDidStopSelector
一个对象,这样当我的动画结束时,可以从一个数组中删除该对象。
以下代码不起作用。
[UIView setAnimationDidStopSelector:@selector(animationDidStopWithObject:)];
self.dialogController.view.alpha=1;
[UIView commitAnimations];
[self.view addSubview:self.dialogController.view];
}
- (void)animationDidStopWithObject:(NSString*)obj {
[items removeObject:obj];
[self.tableView reloadData];
}
如何将选择器传递给对象?
由于
答案 0 :(得分:2)
检查UIView参考。传递给+ setAnimationDisStopSelector的方法:方法必须是
形式- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context
您可以使用动画上下文将对象传递给该选择器(在* beginAnimations:context:call中作为参数传递的void *指针)
答案 1 :(得分:0)
您的选择器需要遵循签名:
- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context
要传递一个自定义对象,这就是context
的用途:您使用[UIView beginAnimations:someId context:yourCustomObject];
进行设置。请注意,yourCustomObject
不会被保留!
答案 2 :(得分:0)
您不能只传递具有任意数量参数的任意选择器。如果您查看文档,则需要采用
格式(void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context
以下是相关文档: