在用户点击 UIView (Swift) 内部的任何地方添加小圆圈/点

And*_*itz 3 xcode drawing uiview touchesbegan swift

我试图弄清楚如何在 UIView 上添加一个小圆圈/点,但只有当用户点击 UIView 内部时。点应该放在用户点击的任何地方。不幸的是,我不知道如何做到这一点。

任何带有代码的示例都非常有帮助!我正在使用斯威夫特。

tma*_*lla 5

在您的视图控制器中,您应该首先实现touchesBegan方法,该方法为您提供可以使用的UITouch对象数组。然后每个UITouch对象都有locationInView属性,可以为您提供CGPoint触摸的位置。您可以将这些位置保存在一个数组中(您的VC 的属性)。或者您可以立即在此方法中初始化您的对象。

func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
    for touch in touches{
        let location = (touch as! UITouch).locationInView(self.courtView)
        var dot = UIView(frame: CGRect(location.x, location.y, 10, 10))
        self.courtView.addSubview(dot) //add dot as subview to your main view
        }
    }
Run Code Online (Sandbox Code Playgroud)

您提供的参数locationInView主要取决于您的视图层次结构,它可能是self,self.contentViewself.view。这同样适用于您将添加为子视图的位置。