我使用以下代码为UIScrollview
中的某些文字制作动画。但我怀疑这段代码阻止了我的触摸事件。
我读到我需要设置动画选项并使用UIViewAnimationOptionAllowUserInteraction
启用触摸。但我无法在不使用AnimateWithDuration
块的情况下使用该选项。如何将UIViewAnimationOptionAllowUserInteraction
与以下代码块一起使用。
-(void) startAnimation
{
[UIView beginAnimations:nil context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
[UIView setAnimationTransition:UIViewAnimationTransitionNone forView:self cache:YES];
NSTimeInterval animationDuration = self.contentSize.width/kPixelsPerSecond;
[UIView setAnimationDuration:animationDuration];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
self.contentOffset = CGPointMake(self.contentSize.width - self.frame.size.width, 0);
[UIView commitAnimations];
}
答案 0 :(得分:0)
你问:
如何使用UIViewAnimationOptionAllowUserInteraction 以下代码块。
答案:你不能。从iOS 4开始,不鼓励使用beginAnimations / commitAnimations技术。这是3个主要版本之前的版本。自iOS 4以来,Apple尚未更新那些旧式动画,并且可能会在某些时候弃用它们。
您应该使用较新的animateWithDuration:animations:
样式动画代码。它可以执行旧的beginAnimations / commitAnimations代码所能做的所有事情,以及更多内容(例如使用UIViewAnimationOptionAllowUserInteraction设置,仅作为示例。
(请注意,通过简单地使用UIViewAnimationOptionAllowUserInteraction选项,您无法处理正在屏幕上移动的视图。您必须编写在父视图中接收触摸的特殊代码,然后在presentationLayer上进行测试正在制作动画的视图。这似乎与你想要做的事情无关,但它仍然值得注意。)