我试图在延迟时间后更改图像视图的位置,如下面的代码
CGPoint pointOne=CGPointMake(150, 200);
UIImageView *sampleImage=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"hello.png"]];
[sampleImage performSelector:@selector(setCenter:) withObject:[NSValue valueWithCGPoint:pointOne] afterDelay:0.5];
它无法正常工作,因为图像视图不接受nsvalue plz说任何其他解决方案将cgpoint或cgrect作为对象传递。提前谢谢。
答案 0 :(得分:1)
只需创建另一个方法,即使在给定NSValue的ViewController中,也可以将其转换回CGPoint并将其设置为UIIMageView。
稍后使用performSelector:withObject:afterDelay:
调用此方法。
如果你需要传递对UIImageView的引用,你可以传递包含视图和值的NSDictionary。
答案 1 :(得分:0)
另一种选择是使用核心动画:
[UIView beginAnimations: @"MyMoveAnimation" context: nil];
[UIView setAnimationDelay: 0.5];
UIImageView* view = ... get view ...;
view.center = ... new center ...;
[UIView commitAnimations];
如果你不希望视图移动到位,那么你也可以将动画持续时间设置为零,或者设置它的透明度以使其淡入。