在我的应用程序我有一些动画。例如,我在主菜单中有一个按钮,当您单击它时,动画开始(如移动某个地方等),并在动画结束时导航到另一个页面。我需要的是在动画期间禁用用户交互。因为在动画过程中如果我按下我的按钮的起点,那么应该导航的页面会打开两次。总结一下,如果我在动画过程中不让任何用户交互,我的问题就会解决。我怎样才能做到这一点?iphone开发:在动画过程中禁用用户交互
回答
动画之前:
self.view.userInteractionEnabled = NO;
,并在动画完成块:
self.view.userInteractionEnabled = YES;
如果用户在视图上有两个按钮,然后wht ..? – Rajneesh071
禁用视图将禁用所有子视图 – swebal
是的,你是对的....但我想说,如果用户有两个按钮,并希望同时在两个按钮上的一些动画...那么怎么才能根据你的代码.. ..所以我建议禁用按钮是更好的方法.... – Rajneesh071
很简单,您可以在动画开始前将setUserInteractionEnabled
设置为NO
,并在动画完成处理程序中将其设置回YES
。
[myObject setUserInteractionEnabled:NO];
[UIView animateWithDuration:1.0 animations:^{
[myObject setTransform:CGAffineTransformMakeTranslation(100, 100)];//some animation
}completion:^(BOOL done){
if (done){
[myObject setUserInteractionEnabled:YES];
}
}];
yourView.userInteractionEnabled = NO;
[UIView animateWithDuration:1 animations:^
{
//animations here
}
completion:^(BOOL finished)
{
yourView.userInteractionEnabled = YES;
}];
按钮的禁用userIntrection。
Btn.userInteractionEnabled = NO;
你不必砍周围建成块 - 有一个动画选项,它不只是这正是:
[UIView animateWithDuration:1.0 delay:0.0 options:UIViewAnimationOptionAllowUserInteraction
animations:^{
// animations here
}
completion:nil];
如果您设置了UIViewAnimationOptionAllowUserInteraction
,那么用户交互将是允许。
问题是如何在动画期间禁用用户交互的所有内容。这个动画选项允许用户交互视图动画。 – AWrightIV
这可能帮助:
// for ignoring event
[[UIApplication sharedApplication] beginIgnoringInteractionEvents];
[[UIApplication sharedApplication] endIgnoringInteractionEvents];
代码如下:
[UIView animateWithDuration:1.0 animations:^{
//some animation
[[UIApplication sharedApplication] beginIgnoringInteractionEvents];
}
completion:^(BOOL done){
if (done){
[[UIApplication sharedApplication] endIgnoringInteractionEvents];
}
}
];
正是我需要的,谢谢! – iceydee
在视图中禁用触摸事件,
[[UIApplication sharedApplication] beginIgnoringInteractionEvents];
在视图中
使触摸事件[[UIApplication sharedApplication] endIgnoringInteractionEvents];
我有视图控制器打开页面的图标。 如果用户快速点击icon1和icon2,则打开2个页面。
防止我有这个2号线到水龙头事件 年初这确保无论发生,endIgnoring将调用
-(void) on_image_tap:(UITapGestureRecognizer *) tapGesture
{
[[UIApplication sharedApplication] beginIgnoringInteractionEvents];
[[UIApplication sharedApplication] performSelector:@selector(endIgnoringInteractionEvents) withObject:nil afterDelay:0.5f];
- 1. 在用户交互过程中重置动画状态
- 2. 用动画过滤UITableViewCells - iPhone开发
- 3. 在cocos2d禁用CCSprite或CCScene的用户交互Iphone
- 4. 动画UIButton上的用户交互
- 5. 在动画过程中禁用keydown
- 6. 禁用MPMoviePlayerController中的用户交互
- 7. 扭曲过程中的用户交互
- 8. 在OpenLayers中禁用交互
- 9. 如何在动画化CALayer的shadowPath属性期间禁用用户交互
- 10. SVProgressHUD - 用户互动禁用
- 11. 禁用用户交互几秒钟android
- 12. 禁用UICollectionView单元格用户交互
- 13. 禁用TabBar上的用户交互
- 14. 如何禁用UIBarButtonItem的用户交互?
- 15. Android contentView禁用用户交互?
- 16. monodroid Steema.TeeChart.TChart:如何禁用用户交互
- 17. 存储过程用户交互
- 18. 用用户交互中断动画序列
- 19. 禁用NSWindow交互
- 20. 禁用Spannable中的交互
- 21. 的UITextView的链接:禁用滚动,用户交互启用
- 22. iphone开发:随机动画
- 23. iphone开发:动画与NSTimer
- 24. 通过代码禁用RoundedRect类型的UIButton的用户交互
- 25. UIView动画交互
- 26. 从iPhone应用程序发送邮件而不使用用户交互iOS5?
- 27. 动画时禁用所有触摸屏交互
- 28. 允许用户交互iPhone SDK?
- 29. 在GWT容器中禁用用户交互?
- 30. 如何在android中显示ProgressBar时禁用用户交互?
你如何动画的看法?传统的方法或使用块? – 2012-09-06 15:07:41
@ NSPostWhenIdle ..为什么它错了或stackoverflow不允许它? – Rajneesh071
好吧,先生...下次我会照顾它,... :) – Rajneesh071