问题
Hi I want to make it so that if you touch an image that I put on the view the -(void)checkcollision happens. The -(void)checkcollision happens, but when I touch anything. How can I say it only works if i touch a specified image. e.g. a pimple:
IBOutlet UIImageView *pimple;
@property (nonatomic, retain) UIImageView *pimple;
here is the touchesBegan code
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *myTouch = [[event allTouches] anyObject];
[self checkcollision];
}
-(void)checkcollision {
if (label.text = @"0") {
label.text = @"1";
}
pimple.hidden = YES;
}
回答1:
CGPoint point = [myTouch locationInView:pimple];
if ( CGRectContainsPoint(pimple.bounds, point) ) {
... Touch detected.
}
Alternatively you can consider gesture recognizers. You can use a tap recognizer for this case.
回答2:
There are two options:
- Subclass
UIImageView
and define your own handler - Check sender
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
and compare it to yourUIImageView
instance.
来源:https://stackoverflow.com/questions/6160741/voidtouchesbegan-to-a-specified-uiimageview