こんにちは、
画面に3つのUIScrollViewがあるビューがあります。ユーザーがiPhoneを振るたびに、UIScrollViewsを別の位置にランダムにスクロールしたいのですが、それを実行できません。
シェイクジェスチャを検出して処理するために、ViewControllerクラスに次の実装を行いました。3つのUIScrollViewも同じクラスに属しています。シェイクジェスチャは検出されますが、UIScrollViewsは変更されません。私は何を間違っているのですか?
私はmotionBeganとmotionEndedの両方を試しました。
-(BOOL)canBecomeFirstResponder {
return YES;
}
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self becomeFirstResponder];
}
- (void)viewWillDisappear:(BOOL)animated {
[self resignFirstResponder];
[super viewWillDisappear:animated];
}
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
if (motion == UIEventSubtypeMotionShake)
{
int randomTag = arc4random() % [dirContents count];
CGRect nextImageView = [[scrollView1 viewWithTag:2] frame];
[scrollView1 scrollRectToVisible:nextImageView animated:YES];
randomTag = arc4random() % [dirContents count];
nextImageView = [[scrollView2 viewWithTag:4] frame];
[scrollView2 scrollRectToVisible:nextImageView animated:YES];
randomTag = arc4random() % [dirContents count];
nextImageView = [[scrollView3 viewWithTag:4] frame];
[scrollView3 scrollRectToVisible:nextImageView animated:YES];
NSLog(@"Shake Detected End");
}
}
ありがとうございました