IOS:在带有动画的 ImageView 下禁用滚动视图
Posted
技术标签:
【中文标题】IOS:在带有动画的 ImageView 下禁用滚动视图【英文标题】:IOS: scrollview disabled under an ImageView with animation 【发布时间】:2011-10-24 10:53:24 【问题描述】:在我的应用程序中,我有一个“启用分页”的滚动视图,当我选择一个页面时,一个 imageview 以这种方式启动它的动画
- (void) beginWinAnimation
[UIView animateWithDuration:2.5
animations:^successView.alpha = 1.0;
completion:^(BOOL finished)
[UIView animateWithDuration:2.5
animations:^successView.alpha = 0;];
];
在这个动画中,我可以看到这个successView下的scrollview,我可以移动scrollview页面;我希望在动画期间你不能移动滚动视图,但只有在动画完成时才能移动,这可能吗?
【问题讨论】:
【参考方案1】:是的,这是可能的。动画开始时设置[scrollView setScrollEnabled:NO];
动画完成后将其设置回YES
。
所以在你的代码中,它看起来像 -
- (void) beginWinAnimation
[scrollView setScrollEnabled:NO];
[UIView animateWithDuration:2.5
animations:^
successView.alpha = 1.0;
completion:^(BOOL finished)
[UIView animateWithDuration:2.5
animations:^successView.alpha = 0;
completion:^(BOOL finished)
[scrollView setScrollEnabled:YES];
];
];
看看这是否有效。
【讨论】:
这是一个完全正确的答案;我想切换userInteractionEnabled
哪个UIScrollView
从UIView
继承作为scrollEnabled
的替代是值得一提的更通用的方法。
因为@blackguardian 只想阻止滚动条,所以只阻止它是有意义的。我们可以通过关闭userInteractionEnabled
来实现相同的行为,但随后屏幕上的所有内容都变得不可点击。这会导致一些丑陋的可用性问题。所以...
它可以工作但是有一个问题,当alpha从1变为0时启用滚动;当 alpha 由 0 变为 1 时就可以了
现在是你想要的吗?
是的,当动画运行时滚动应该被禁用以上是关于IOS:在带有动画的 ImageView 下禁用滚动视图的主要内容,如果未能解决你的问题,请参考以下文章