0

scrollview と html を含む uiwebview を保持しているビューがあります。スクロールビューをゆっくりと自動的に一番下までスクロールし、タッチすると一時停止し、現在の位置でアニメーションを再開しようとしています。

現在、htmlが表示され、スクロールビューがスクロールし、タッチがスクロールを停止していますが、タッチ後一定時間後に現在の位置でスクロールアニメーションを再開することができません。コードは次のとおりです。

      - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSString *myHTML = @"<html><body><h1>Hello, world!</h1><h1>Hello, world!</h1><h1>Hello, world!</h1><h1>Hello, world!</h1><h1>Hello, world!</h1><h1>Hello, world!</h1><h1>Hello, world!</h1><h1>Hello, world!</h1><h1>Hello, world!</h1><h1>Hello, world!</h1><h1>Hello, world!</h1><h1>Hello, world!</h1><h1>Hello, world!</h1><h1>Hello, world!</h1></body></html>";

    [self.webView loadHTMLString:myHTML baseURL:nil];

    UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(userDidTapWebView)];
    [self.webView addGestureRecognizer:recognizer];
    recognizer.delegate = self;
    [recognizer release];

    //Start the scrolling
    [self startAnimation];

}

#pragma mark - Gesture Delegate

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
       shouldReceiveTouch:(UITouch *)touch {
    //Stop the scrollview from scrolling when the screen is touched
    [self.scrollView.layer removeAllAnimations];

    return YES;
}

#pragma mark - Animate Methods

-(void)startAnimation{
    [UIScrollView beginAnimations:@"scrollAnimation" context:nil];
    [UIScrollView setAnimationDuration:8.0f];
    [self.scrollView setContentOffset:CGPointMake(0 , 100)];
    [UIScrollView commitAnimations];
}

-(void)dealloc{
    [super dealloc];
    [self.webView release];
    [self.scrollView release];
}


- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
4

1 に答える 1