首先這是一個使用UIView
完成的循環(huán)動畫
[UIView animateWithDuration:kCarouselViewAnimationDuration delay:kCarouselViewAnimationDelay options:UIViewAnimationOptionCurveLinear animations:^{
CGPoint offset = self.scrollView.contentOffset;
self.scrollView.contentOffset = CGPointMake(offset.x + kCarouselViewWidth, offset.y);
} completion:^(BOOL finished) {
[self updateUI];
dispatch_async(dispatch_get_main_queue(), ^{
[self animation];
});
}];
在動畫過程中,scrollView
暫時失去了他的滑動事件祟敛,并且添加在上面的 tap
事件也沒有響應(yīng)该园。
自己尋找原因無果,在 stackoverflow 找到答案拉馋。
另外 cocoachina 上也有討論榨为。
在使用 options 動畫過程中,默認是不響應(yīng)事件的煌茴,可以使用
UIViewAnimationOptionAllowUserInteraction
響應(yīng)事件随闺。
[UIView animateWithDuration:kCarouselViewAnimationDuration delay:kCarouselViewAnimationDelay options:UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAllowUserInteraction animations:^{
CGPoint offset = self.scrollView.contentOffset;
self.scrollView.contentOffset = CGPointMake(offset.x + kCarouselViewWidth, offset.y);
} completion:^(BOOL finished) {
[self updateUI];
dispatch_async(dispatch_get_main_queue(), ^{
[self animation];
});
}];