我有几个uiimages,我可以使用multitouches在iphonescreen上移动。问题是我希望将它们分成两个“团队”,一个“团队”的uiimages,我移动到我选择的区域内,一个“团队”,我可以在屏幕上移动。
我的问题是如何使用触摸方法(touchesbegan,touchesended,touchesmoved)两个uiimage“团队”和他们的cgpoints没有来自两个“团队”的cgpoints相互交叉并给出错误的uiimages错误的位置屏幕。第一个“团队”使用touchesbegan,touchesmoved和touchesended方法。第二个“团队”只使用了touchesended方法。
这是我的代码。我希望2个“团队”不要在触摸式方法中相互交叉
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
//1st team
for(UITouch *touch in touches){
// Send to the dispatch method, which will make sure the appropriate subview is acted upon
[self getRubyAtPoint:[touch locationInView:self.view]forEvent: nil];
}
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"touchesEnded");
//1st team
// Enumerates through all touch object
for (UITouch *touch in touches) {
// Sends to the dispatch method, which will make sure the appropriate subview is acted upon
[self dispatchTouchEndEvent:[touch view] toPosition:[touch locationInView:self.view]];
}
//2nd team
UITouch *touch = [touches anyObject];
CGPoint currentTouch = [touch locationInView:self.view];
[self getPieceAtPoint:currentTouch];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
//1st team
NSLog(@"touchesMoved");
// Enumerates through all touch objects
for (UITouch *touch in touches) {
// Send to the dispatch method, which will make sure the appropriate subview is acted upon
[self dispatchTouchEvent:[touch view] toPosition:[touch locationInView:self.view]];
}
}
答案 0 :(得分:1)
如果我理解,你问的是如何让getPieceAtPoint等方法对错误的团队采取行动。
我想我只是为每个团队添加一个唯一的标记范围,并在采取行动之前检查它。
类似的东西:
UITouch *touch = [touches anyObject];
if ([touch view].tag>=TEAM_TWO_BASE_TAG)
{
CGPoint currentTouch = [touch locationInView:self.view];
[self getPieceAtPoint:currentTouch];
}