2011-10-27 21 views
2

的UIActivityIndi​​catorView假设有一个UIView作为一个容器,它包含一个UIActivityIndicatorView等subviews.When的UIActivityIndicatorView是动画,它的userInteractionEnabled属性设置为NO,这使得它所有的兄弟姐妹的意见停止接收输入事件。了解iOS

我检查了苹果的文档,它建议我们可以使用UIViewAnimationOptionAllowUserInteraction常量来解决这个问题。但我不知道在哪里或哪个属性设置这个常量。有没有人遇到过这个问题并解决它?

回答

2

UIViewAnimationOptionAllowUserInteraction是用块动画视图的选项之一。允许用户在动画时与视图交互。

enum { 
    UIViewAnimationOptionLayoutSubviews   = 1 << 0, 
    UIViewAnimationOptionAllowUserInteraction  = 1 << 1, 
    UIViewAnimationOptionBeginFromCurrentState  = 1 << 2, 
    UIViewAnimationOptionRepeat     = 1 << 3, 
    UIViewAnimationOptionAutoreverse    = 1 << 4, 
    UIViewAnimationOptionOverrideInheritedDuration = 1 << 5, 
    UIViewAnimationOptionOverrideInheritedCurve = 1 << 6, 
    UIViewAnimationOptionAllowAnimatedContent  = 1 << 7, 
    UIViewAnimationOptionShowHideTransitionViews = 1 << 8, 

    UIViewAnimationOptionCurveEaseInOut   = 0 << 16, 
    UIViewAnimationOptionCurveEaseIn    = 1 << 16, 
    UIViewAnimationOptionCurveEaseOut    = 2 << 16, 
    UIViewAnimationOptionCurveLinear    = 3 << 16, 

    UIViewAnimationOptionTransitionNone   = 0 << 20, 
    UIViewAnimationOptionTransitionFlipFromLeft = 1 << 20, 
    UIViewAnimationOptionTransitionFlipFromRight = 2 << 20, 
    UIViewAnimationOptionTransitionCurlUp   = 3 << 20, 
    UIViewAnimationOptionTransitionCurlDown  = 4 << 20, 
    UIViewAnimationOptionTransitionCrossDissolve = 5 << 20, 
    UIViewAnimationOptionTransitionFlipFromTop  = 6 << 20, 
    UIViewAnimationOptionTransitionFlipFromBottom = 7 << 20, 
}; 
typedef NSUInteger UIViewAnimationOptions; 

但我不知道它是如何帮助您使用UIActivityIndi​​catorView。简单的例子:

[UIView animateWithDuration:0.4f 
         delay:0.2f 
        options:UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionCurveEaseInOut 
       animations:^{ 
        [myView setFrame:CGRectOffset(view.frame, 0, -100)]; 
       } 
       completion:^(BOOL finished){ 
         NSLog(@"completed"); 
        } 
]; 
+0

当使用'UIActivityIndi​​catorView'时,我通常会创建空的持有者视图,将它放在前面并放入它UIActivityIndi​​catorView。当进程完成时,只需删除此视图 – beryllium

+0

谢谢,这有助于很多 –