我有一个自定义活动指示器,该指示器是全屏UIView
,其{strong> layer 属性中添加了CABasicTransformation
用于轮换。当我在自定义layer.speed = 0
方法中设置hideActivityIndicator()
并显示警报时,我无法与其按钮或其他按钮进行交互,同时说在显示警报之前,我可以在表格视图中选择一个单元格设置layer.speed = 0
后使用相同的控制器。需要明确的是,这是产生效果的唯一代码行。如果我将其注释掉,则警报效果很好。
答案 0 :(得分:1)
默认情况下,动画会导致UI元素停止接受“用户交互”(轻击)。
我的猜测是,当您将动画速度设置为0时,动画将始终运行,永不结束,并且用户交互被禁用。
您也许可以在按钮上设置allowUserInteraction
标志,但是allowUserInteraction
是UIView.AnimationOptions的属性,所以我不确定您该怎么做。
您可以尝试在视图的transform属性上使用UIView动画,而不是在图层上使用CABasicAnimation。然后,您可以在设置动画时使用allowUserInteraction
属性。
(请注意,在UIView动画的幕后实际上创建了CAAnimations,并且将图层的动画速度设置为0仍将冻结动画。)