斯威夫特:userInteractionEnabled 用于纺车概念中的子视图
Posted
技术标签:
【中文标题】斯威夫特:userInteractionEnabled 用于纺车概念中的子视图【英文标题】:Swift: userInteractionEnabled for subviews in spinning wheel concept 【发布时间】:2017-12-29 12:40:38 【问题描述】:我正在 ios 中尝试旋转轮的概念。我的基础教程是here
UIControl 是这里的核心。 Superview 的userinteraction
一直被禁用。
那么如何单独为其子视图启用userinteraction
?
我已将UITapGestureRecognizer
添加到 SmallRoundViews。手势不起作用。
如果我将 superview 的用户交互更改为启用,则手势正在工作。但是,它不旋转。
如果我将 superview 的用户交互更改为禁用,则旋转工作正常。但是手势不起作用。
我需要完成所有事情。你能指导我吗?
【问题讨论】:
我不确定,但我至少可以想到一个不可能的原因:由于交互是从父级传播到其子级的,因此父级很可能没有委托任何东西如果交互被禁用,句号。伪:if userInteractionDisabled return else delegateToChildren()
***.com/a/38217199/1979882
没有。一切都不起作用。请做有需要的
【参考方案1】:
以下代码正在工作,
如果我将 superview 的 userinteraction
更改为 true
,UITapGestureRecognizer
和 spinning
都可以工作..
覆盖UIControl
子类中的UITouch
方法。
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?)
let touch : UITouch = touches.first!
self.beginTracking(touch, with: event)
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?)
let touch : UITouch = touches.first!
self.continueTracking(touch, with: event)
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?)
let touch : UITouch = touches.first!
self.endTracking(touch, with: event)
【讨论】:
以上是关于斯威夫特:userInteractionEnabled 用于纺车概念中的子视图的主要内容,如果未能解决你的问题,请参考以下文章