[英]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.