为UIImageView实现UITouchDown [英] Implement UITouchDown for UIImageView

查看:76
本文介绍了为UIImageView实现UITouchDown的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道如何实现 touchesBegan UIImageView

是否可以为 UIImageView 实现 UITouchDown ?(我知道我可以使用 touchesBegan 而不是 UITouchDown 但我想实现 UITouchDown

is it possible to implement UITouchDown for UIImageView ?(i know that i can use touchesBegan instead of UITouchDown but i want to implement UITouchDown)

推荐答案

使用UIButton。

UIButton *aButton = [UIButton buttonWithType:UIButtonTypeCustom];
[aButton setImage:someUIImage forState:UIControlStateNormal];
[aButton addTarget:self action:@selector(aMethod) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:aButton];

替代UIButton(更长的方法)

A UIControl 已经实现了用户交互和对细粒度用户交互的支持。你可以结合 UIImageView UIControl 的功能来实现这一点,因为它们都是的UIView 。

A UIControl implements user interactions and support for fine-grained user interactions already. You can combine the functionality of a UIImageView and a UIControl to achieve this since both are subclasses of UIView.

要获得此行为,请将UIImageView的对象作为子视图添加到 UIControl ,以使图像完全覆盖。然后使用 addTarget:action:forControlEvents: 。这是一个例子:

To get this behavior, add an object of UIImageView as a subview to a UIControl such that the image is fully covered. Then add a event handler to this control using addTarget:action:forControlEvents:. Here's an example:

// assuming the image view object exists
UIImageView *anImageView = ..;

// create a mask that the covers the image exactly
UIControl *mask = [[UIControl alloc] initWithFrame:anImageView.frame];

// add the image as a subview of this mask
CGSize imageSize = anImageView.frame.size;
anImageView.frame = CGRectMake(0, 0, imageSize.width, imageSize.height);
[mask addSubview:anImageView];

// add a target-action for the desired control events to this mask
[mask addTarget:self action:@selector(someMethod:) forControlEvents:UIControlEventTouchUpInside];

// add the mask as a subview instead of the image
[self.view addSubview:mask];

这篇关于为UIImageView实现UITouchDown的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆