1
iPhoneを振ると、画面のどの部分がタッチされたかを検出したいと思います。マルチタッチ質問
私は次のようにそれを行う:ユーザーが別の揺れを行う前に両手を削除しますが、私は、画面上で両手を持っており、それらのいずれかを削除する場合、すべてが台無しに入った場合
-(void) accelerometer: (UIAccelerometer*)accelerometer didAccelerate: (UIAcceleration*)acceleration
{
float shakeStrength = sqrt(acceleration.x * acceleration.x + acceleration.y * acceleration.y + acceleration.z * acceleration.z);
if (shakeStrength >= 1.5f)
{
if (isLeftHandTouches && isRightHandTouches)
{
DebugLog(@"both hands shake");
} else if (isLeftHandTouches)
{
DebugLog(@"left hand shake");
} else if (isRightHandTouches)
{
DebugLog(@"right hand shake");
}
}
}
-(void) touchesBegan: (NSSet *)touches withEvent: (UIEvent *)event
{
NSSet *allTouches = [event allTouches];
for (int i = 0; i < [allTouches count]; i++)
{
if ([ [ [allTouches allObjects] objectAtIndex: i] locationInView: [self view] ].x <= 240.0f)
{
isLeftHandTouches = YES;
} else
{
isRightHandTouches = YES;
}
}
}
-(void) touchesEnded: (NSSet *)touches withEvent: (UIEvent *)event
{
NSSet *allTouches = [event allTouches];
for (int i = 0; i < [allTouches count]; i++)
{
if ([ [ [allTouches allObjects] objectAtIndex: i] locationInView: [self view] ].x <= 240.0f)
{
isLeftHandTouches = NO;
} else
{
isRightHandTouches = NO;
}
}
}
すべてが正常に動作します。
つまり、私は両手で画面を振って、その後は片手でiPhoneを振りたい。この場合、振れはカウントされません - 画面に触れないかのように。私は、画面から片手を離すと、両方の「タッチ」が取り除かれていると思います。
問題は何ですか?どのように修正できますか?
ありがとうございました。