繁体   English   中英

在xcode中的UIImage的多个图像之间切换

[英]changing between multiple images for an UIImage in xcode

一直在开发应用程序,并且一直在研究此处可用的问题,但是找不到能够解决我的问题的类似方法很幸运。

我有一个包含4张图像的阵列设置,并且每次尝试依次触摸图像时,我都尝试更改为另一幅图像,然后在显示最后一张图像后又返回到第一张图像。

例如:image1“ touch” => image2“ touch” => image3“ touch” image4“ touch” => image1 .....

除非“触摸”,否则图像不会改变。

我的数组设置为:

    -(void) viewDidLoad {
        imageArray = [[NSArray alloc] initWithObjects:
                      [UIImage imageNamed:@"image1.png"],
                      [UIImage imageNamed:@"image2.png"],
                      [UIImage imageNamed:@"image3.png"],
                      [UIImage imageNamed:@"image4.png"],
                      nil];

然后,我显示带有以下内容的第一个图像:

    imageView.image = [imageArray objectAtIndex:0];

然后,我可以使用以下代码在两个图像之间成功切换:

    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
       UITouch *touch = [[event allTouches] anyObject];
       NSLog(@"'Touches Began");

       if ([touch view] == imageView) {
           imageView.image = [imageArray objectAtIndex:1];
           NSLog(@"Image touched and changed");
       }

现在,因为我希望imageView显示两个以上的更改,所以我尝试在for循环内使用if语句,但没有成功:

    int touchCount = 0;
    for (touchCount = 1; touchCount < 4; touchCount++) {
        if ((touchCount < 4) && ([touch view] == imageView)) {
            imageView.image = [imageArray objectAtIndex:touchCount];
            NSLog(@"Touch Count = %d", touchCount);
        }
    }

运行时,调试器显示“ Touch Count = 0”,然后崩溃并返回主屏幕。 有人可以帮忙解决这个问题吗? 我的概念错了吗?

使用整数作为实例变量,该变量存储要显示的图像。 在viewDidLoad上将此设置为0。

在图像视图上注册触摸时,请增加整数。 如果该值等于图像数组的计数,则将其设置回0。

将图像设置为由整数值指示的图像数组的元素:

// touch registered on image
currentImage++;
if (currentImage == [imageArray count])
    currentImage = 0;

imageView.image = [imageArray objectAtIndex:currentImage];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM