ios - 如何使用 ex 更改 UIImageView 的图像。 [触摸 View ]

标签 ios objective-c uiimageview uiimage

我正在尝试制作一个简单的应用程序,以便更好地理解 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/

相关文章:

ios - 使用 Facebook 登录时从未调用过 PFLoginViewController didLogin

ios - MMdrawerCOntroller - 在带有过渡的中心 View 中加载 View

iphone - UIWebView 崩溃

ios - Parse.com 总是返回最多 100 条记录,同样有 "limit = 1000"

ios - UIImageView 不响应居中

ios - 缩放后的问题我想要完整图像,而不仅仅是缩放图像的一部分

ios - 在 iOS 上实时编辑和预览视频

android - iOS 或 Android 上的并发网络请求的效率如何?

objective-c - 如何在屏幕外动画 uiview 并在应用程序启动时停留在那里而不是每次加载 View 时?

ios - 在 UIImageView 中的两个图像之间转换的最佳方式