通过选择器改变uiimageview位置

时间:2010-08-21 10:43:26

标签: iphone

我试图在延迟时间后更改图像视图的位置,如下面的代码

    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作为对象传递。提前谢谢。

2 个答案:

答案 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];

如果你不希望视图移动到位,那么你也可以将动画持续时间设置为零,或者设置它的透明度以使其淡入。