检测源自superview的触摸

时间:2015-04-08 22:49:03

标签: ios swift uiview

我正在创建一个UIView的子类以在项目中使用,并将处理主视图上的触摸。我喜欢这样当拖动触摸(在主视图上)并接触特殊的UIViews时,它们会改变它们的背景颜色。使用UIView的默认" touchesMoved"函数仅检测源自特定视图的触摸。我可以设置主视图来检查自定义UIView的每个实例,但这会与封装相反并导致代码混乱。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我不确定这是你的追求,但如果我将以下代码放在我的视图控制器中,其视图中有多个RDView视图,当我从主视图拖动时,这些视图的颜色会改变颜色进入RDView。

    override func touchesMoved(touches: NSSet, withEvent event: UIEvent) {
        var touched = self.view.hitTest((touches.anyObject() as UITouch).locationInView(self.view), withEvent: event)
        if touched is RDView {
            touched?.backgroundColor = UIColor.redColor()
        }
    }