You can use the touchhesBegan + touchesMoved + touchesEnded methods to create a list of buttons affected by the user, from start to finish.
I wrote this on the fly and did not test it, but it could look something like this:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[interactions removeAllObjects];
UITouch *touch = [touches anyObject];
[self checkForInteractions:touch];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
[self checkForInteractions:touch];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
[self checkForInteractions:touch];
[self useInteractions];
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
{
[interactions removeAllObjects];
}
- (void) checkForInteractions : (UITouch *) touch
{
if ([touch view] == myButton1 || [touch view] == myButton2)
{
if ( ![interactions containsObject:[touch view]] )
{
[interactions addObject:[touch view]];
}
}
}
, :)