菜鸟教程小白 发表于 2022-12-11 20:24:42

ios - 关于 iOS 中的 UIActivityIndi​​catorView


                                            <p><p>假设有一个<code>UIView</code>作为容器,里面包含一个<code>UIActivityIndi​​catorView</code>和其他 subview 。当<code>UIActivityIndi​​catorView</code>动画时,它设置<code>userInteractionEnabled</code> 属性设置为 NO,这使得它的所有兄弟 View 都停止接收输入事件。</p>

<p>我查看了Apple的文档,它建议我们可以使用<code>UIViewAnimationOptionAllowUserInteraction</code>常量来解决这个问题。但我不知道在哪里或哪个属性设置这个常量。有没有人遇到过这个问题并解决是吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p><code>UIViewAnimationOptionAllowUserInteraction</code> 是使用 block 动画 View 的选项之一。允许用户在动画制作时与 View 进行交互。 </p>

<pre><code>enum {
   UIViewAnimationOptionLayoutSubviews            = 1 &lt;&lt;0,
   UIViewAnimationOptionAllowUserInteraction      = 1 &lt;&lt;1,
   UIViewAnimationOptionBeginFromCurrentState   = 1 &lt;&lt;2,
   UIViewAnimationOptionRepeat                  = 1 &lt;&lt;3,
   UIViewAnimationOptionAutoreverse               = 1 &lt;&lt;4,
   UIViewAnimationOptionOverrideInheritedDuration = 1 &lt;&lt;5,
   UIViewAnimationOptionOverrideInheritedCurve    = 1 &lt;&lt;6,
   UIViewAnimationOptionAllowAnimatedContent      = 1 &lt;&lt;7,
   UIViewAnimationOptionShowHideTransitionViews   = 1 &lt;&lt;8,

   UIViewAnimationOptionCurveEaseInOut            = 0 &lt;&lt; 16,
   UIViewAnimationOptionCurveEaseIn               = 1 &lt;&lt; 16,
   UIViewAnimationOptionCurveEaseOut            = 2 &lt;&lt; 16,
   UIViewAnimationOptionCurveLinear               = 3 &lt;&lt; 16,

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

<p>但我不知道它对您使用 UIActivityIndi​​catorView 有何帮助。简单例子:</p>

<pre><code>[UIView animateWithDuration:0.4f
                      delay:0.2f
                  options:UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionCurveEaseInOut
               animations:^{
                     ;
               }
               completion:^(BOOL finished){
                         NSLog(@&#34;completed&#34;);
                     }
];
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 关于 iOS 中的 UIActivityIndi​​catorView,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/7912436/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/7912436/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 关于 iOS 中的 UIActivityIndi​​catorView