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