如何在 ios 中停止显示图像



嗨,我是电话编程的新手。谁能告诉我使用以下代码我正在使用以下代码自动显示一个UIImage。在这里,一旦所有UIImages显示它都停止了,我UIImages存储在NSArray中,但是一旦所有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);
}

如果你使用UIImage,最简单的事情是你可以这样做:

myUIImage = nil;

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

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

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

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

if (currentImage < blaukypath2.count)
{
    currentImage++; 
}
似乎无论如何都会

增加currentImage。确保仅在您仍在数组blaukypath2循环中时才执行此操作。图像img10也应仅在您仍在该循环中时才显示。

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

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

1 - 您应该将图像初始化循环从"完成播放方法"中移动,因为它是大量的。您需要在某些初始化方法中执行此操作一次。在同一个地方,您需要将当前图像初始化为零。

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");
}

最新更新