0

嗨,我是电话编程的新手。谁能告诉我使用下面的代码我正在UIImage使用下面的代码自动显示一个。在这里UIImages,我存储的NSArray所有内容都已停止显示,但在这里,一旦全部完成UIImages,我该如何停止。UIImages

- (void)displayPicture{
    for (NSString* path in array000) { 
        [blaukypath2 addObject:[UIImage imageWithContentsOfFile:path]]; 
        NSLog(@"%@",path); 
    } 

    NSLog(@"%@",blaukypath2); 
    NSLog(@"%icurrentImage DIDF",currentImage); 

    currentImage++; 
    if (currentImage >= blaukypath2.count) currentImage = 0; 

    UIImage *blaukyyimag = [blaukypath2 objectAtIndex:currentImage]; 
    [img10 setImage:blaukyyimag]; 
    NSLog(@"%icurrentImage++ DIDF",currentImage);
}
4

4 回答 4

0

如果您使用 UIImage,您可以执行以下最简单的操作:

myUIImage = nil;

不过,请确保 myUIImage 已连接到您的storyboardorxib文件中。

于 2013-10-24T14:35:06.120 回答
0

我在您的代码中看到两个问题。

1 - 您应该将图像初始化循环从“完成播放方法”中移出,因为它非常丰富。您需要在某些初始化方法中执行一次。在同一个地方,您需要将 currentImage 初始化为零。

2 - 要仅显示每张图像一次,您需要在“完成播放方法”中使用以下代码

if (currentImage < blaukypath2.count) {
    UIImage *blaukyyimag = [blaukypath2 objectAtIndex:currentImage]; 
    [img10 setImage:blaukyyimag]; 
    NSLog(@"%icurrentImage++ DIDF",currentImage);
    currentImage++;
} else {
    [img10 setImage:nil]; 
    NSLog(@"all images was displayed DIDF");
}
于 2013-10-25T15:19:31.587 回答
0

似乎currentImage无论如何都完成了增量。确保仅当您仍在数组循环中时才完成blaukypath2。该图像img10也应该仅在您仍处于该循环中时显示。

if (currentImage < blaukypath2.count) {

    UIImage *blaukyyimag = [blaukypath2 objectAtIndex:currentImage]; 
    [img10 setImage:blaukyyimag]; 
    NSLog(@"%icurrentImage++ DIDF",currentImage);

    currentImage++;
}
于 2013-10-24T14:51:43.873 回答
0

我无法确切说明您的代码是如何工作的,但是如果它处于某种forwhile循环中,那么这些行可能是您的问题:

currentImage++; 
if (currentImage >= blaukypath2.count) currentImage = 0;

您正在递增currentImage,但是当您到达 中的最后一张图像时blaukypath2,您将设置currentImage为 0 并重新开始。试试这个:

if (currentImage < blaukypath2.count)
{
    currentImage++; 
}
于 2013-10-24T14:47:43.417 回答