我正在尝试制作一个简单的应用程序,以便更好地理解 Obj-C。
我想要完成的是在触摸结束时更改 UIImageView 图片的功能。这是一个简单的任务,具有静态功能 circle.image = [UIImage imageNamed:@"newImage.png"];
但我需要它是动态的,所以我不需要输入这个每个图像的行。
在某些情况下,我一直在使用[touch view]
(参见下面的示例代码),但这对于更改图像是不可能的:Property 'image ' 在 UIImage 类型的对象上找不到
我希望有人能给我替代方案,我会非常感谢一些示例代码,在此先感谢:)
ViewController.h:
@interface ViewController : UIViewController{
IBOutlet UIImageView *circle;
IBOutlet UIImageView *triangle;
IBOutlet UIImageView *star;
IBOutlet UIImageView *background;
}
ViewController.m
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = [[event allTouches] anyObject];
if([touch view] != background){
[touch view].image = [UIImage imageNamed:@"newImage.png"];
}
}
最佳答案
您不应该使用“==”来比较对象(仅限基元)。无论如何,最好检查对象是否是 ImageView :
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = [[event allTouches] anyObject];
if([touch.view isKindOfClass:[UIImageView class]]){
[(UIImageView *)[touch view] image] = [UIImage imageNamed:@"newImage.png"];
}
}
如果您的 View 中有其他您不想参与此图像更改的 ImageView ,那么您可能想要给您想要更改的 ImageView 、标签,并检查标签中的标签值if 语句代替。
关于ios - 如何使用 ex 更改 UIImageView 的图像。 [触摸 View ],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20708415/