Ios 检测用户是否未触摸对象
我正在为iPad开发一款iOS应用程序。我使用I代码来检测用户何时触摸对象,但现在我想使用相同的代码来检测用户何时不触摸对象。代码如下:Ios 检测用户是否未触摸对象,ios,objective-c,ipad,touch,Ios,Objective C,Ipad,Touch,我正在为iPad开发一款iOS应用程序。我使用I代码来检测用户何时触摸对象,但现在我想使用相同的代码来检测用户何时不触摸对象。代码如下: - (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event { UITouch *touch = [touches anyObject]; CGPoint location = [touch locationInView:[touch view]]; if (CGRectContainsP
- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:[touch view]];
if (CGRectContainsPoint(ribbon.frame, location) || CGRectContainsPoint(inferior.frame, location) || CGRectContainsPoint(superior.frame, location) & (pujat==YES)){
pujat=NO;
[UIView animateWithDuration:0.25 animations:^{
superior.frame = CGRectMake(0, 710, 1024,500);
ribbon.frame = CGRectMake(480, 685, 70,70);
inferior.frame = CGRectMake(0, 750, 1024,500);}];
[self.view bringSubviewToFront:inferior];
}
}
那么,如何检测用户何时触摸屏幕而不是某个对象呢?实际上,如果触摸点不在某个对象上,CGRectContainsPoint将返回false。假设您要检查触点是否在ribbon中。只有一个“!”就足够了
- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:[touch view]];
if (CGRectContainsPoint(ribbon.frame, location) || CGRectContainsPoint(inferior.frame, location) || CGRectContainsPoint(superior.frame, location) & (pujat==YES)){
if(!CGRectContainsPoints(ribbon.frame,location))
NSLog("Touch point is not on ribbon");
pujat=NO;
[UIView animateWithDuration:0.25 animations:^{
superior.frame = CGRectMake(0, 710, 1024,500);
ribbon.frame = CGRectMake(480, 685, 70,70);
inferior.frame = CGRectMake(0, 750, 1024,500);}];
[self.view bringSubviewToFront:inferior];
}
}
实际上,如果接触点不在特定对象上,CGRectContainsPoint将返回false。假设您要检查触点是否在ribbon中。只有一个“!”就足够了
- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:[touch view]];
if (CGRectContainsPoint(ribbon.frame, location) || CGRectContainsPoint(inferior.frame, location) || CGRectContainsPoint(superior.frame, location) & (pujat==YES)){
if(!CGRectContainsPoints(ribbon.frame,location))
NSLog("Touch point is not on ribbon");
pujat=NO;
[UIView animateWithDuration:0.25 animations:^{
superior.frame = CGRectMake(0, 710, 1024,500);
ribbon.frame = CGRectMake(480, 685, 70,70);
inferior.frame = CGRectMake(0, 750, 1024,500);}];
[self.view bringSubviewToFront:inferior];
}
}