繁体   English   中英

如何检测图像上的触摸?

[英]How can I detect a Touch on an image?

这确实是基本的东西,但是我似乎做得不好(我是编程新手)。 我想做的是让Xcode 5应用程序检测是否按下或触摸了具有特定名称的图像(例如,例如@。“ go.png”。我该怎么做?只有两个按钮,因此,我一直使用(touchLocation.y和.x ...)方法来执行此操作,但是现在我需要使用Button被按下的方法。我在下面粘贴了代码。非常感谢大家的帮助。

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

UITouch *touch = [touches anyObject];
CGPoint touchLocation = [touch locationInNode:self];


switch (_flyGo) {
    case HeadMenu:
        if (touchLocation.y < self.size.height * 0.7) {
        } else if (touchLocation.x < self.size.width * 0.3) {
            [self switchNewFly:FlyTutorial];
        } else {
            [self giveRatingToApp];
        }
        break;
    case FlyTutorial:
        [self switchToFly];
        break;
    case FlyStatePlay:
        [self flyPlayer];
        break;
    case FlyDisplayFalling:
        break;
    case FlyDisplayScore:
        break;
    case FlyDisplayDone:
        if (touchLocation.x < self.size.width * 0.6) {
            [self switchNewFly:FlyDisplayTutorial]; 
        } else {
            [self ShareMyScore];
        }
        break;
}




//I would like to get an image for ex. "flyer.png" to be detected as a touch instead of using (touchLocation.x or .y < self.size.width * 0.6) 

谢谢!!!!

是的你可以

将触摸识别器添加到UIImageView(不要忘记设置imgView.userInteractionEnabled = YES;)。 还要将imgView的标签属性设置为某个值。

 UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapAll:)];
 tapRecognizer.numberOfTapsRequired = 1;
 tapRecognizer.numberOfTouchesRequired = 1;
 [imgView addGestureRecognizer:tapRecognizer];

然后

- (void)handleTapAll:(UITapGestureRecognizer *)recognizer {
    UIImageView *img = (UIImageView *)recognizer.view;
    if(img.tag == some_vale) //your code


}
ViewController.h
@interface ViewController : UIViewController<UIGestureRecognizerDelegate>
......

ViewController.m
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
imageView.image = [UIImage imageNamed:@"yourimage.png"];

imageView.userInteractionEnabled = YES;
imageView.exclusiveTouch = YES;
imageView.multipleTouchEnabled = YES;


// Add tap gesture
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
[tap setNumberOfTapsRequired:1];
tap.delegate = self;
[imageView addGestureRecognizer:tap];
[self.view addSubview:imageView];


- (IBAction)handleTap:(UIGestureRecognizer *)recognizer { //Your code here }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM