使用NSTimer一个接一个地在两个UIImageViews之间切换

时间:2014-04-29 20:18:49

标签: ios objective-c uiimageview nstimer

我看过类似的问题,但没有一个答案在我的案例中有效。我想给我的角色一个他正在行走的错觉,但他会真的保持在相同的坐标,背景将会移动,我想这样做的方式是使用IBAction来启动我的计时器,到目前为止我的代码看起来像这样。

-(IBAction)StartGame:(id)sender
{    
    PersonMovement = [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(PersonMovement) userInfo:nil repeats:YES];
}

现在使用该计时器,每0.05秒我希望我的人UIImageView在(step1.png和step2.png)来回切换。

1 个答案:

答案 0 :(得分:4)

您应该使用UIImageView s animationImagesanimationDuration属性来完成此次交换。

您的animationImages数组将是您的两张图片,animationDuration0.1显示为0.1秒。然后调用startAnimating启动序列

https://developer.apple.com/library/ios/documentation/uikit/reference/UIImageView_Class/Reference/Reference.html#//apple_ref/occ/instp/UIImageView/animationImages

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIImage *image1 = [UIImage imageNamed:@"image1"];
    UIImage *image2 = [UIImage imageNamed:@"image2"];

    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f, 20.0f, 200.0f, 200.0f)];
    [self.view addSubview:imageView];

    imageView.animationImages = @[image1, image2];
    imageView.animationDuration = 0.1;
    [imageView startAnimating];
}