在 swift 中获取各种触摸坐标
Get various coordinates for touches in swift
我试图在 swift 4 的 UIView 中触摸时获取各个点的坐标。我已经看到另一个 post 关于类似的问题,但该代码只允许第一个轻触进行注册。我会很感激一些帮助。谢谢
您可以在 UIView 子类上实现 touchesMoved 回调来执行此操作。
func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?)
此函数在触摸进行时被重复调用。
总体思路如下:
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
guard let touch = touches.first else {
return
}
let location = touch.location(in: self)
print("x = \(location.x), y = \(location.y)")
}
此代码将为您提供每次触摸屏幕时的坐标。您可以打印出来或直接贴在标签上进行测试。
@IBOutlet weak var imageView: UIImageView!
var coordinates = CGPoint.zero
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = touches.first{
coordinates = touch.location(in: imageView)
print(coordinates)
textLabel.text = "\(coordinates)"
}
}
因此,我也找到了我的问题的答案:我在 UIViewController 内部使用下面的代码在不同位置进行触摸时获取二维整数数组。感谢所有的帮助。
var positionArray = Array(repeating: Array(repeating: 0, count: 2), count: 10)
var counter = 0
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = touches.first {
let position = touch.location(in: self.view)
let locx = Int(position.x)
let locy = Int(position.y)
positionArray[counter] = [locx, locy]
print(positionArray[counter])
counter = counter + 1
}
}
我试图在 swift 4 的 UIView 中触摸时获取各个点的坐标。我已经看到另一个 post 关于类似的问题,但该代码只允许第一个轻触进行注册。我会很感激一些帮助。谢谢
您可以在 UIView 子类上实现 touchesMoved 回调来执行此操作。
func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?)
此函数在触摸进行时被重复调用。
总体思路如下:
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
guard let touch = touches.first else {
return
}
let location = touch.location(in: self)
print("x = \(location.x), y = \(location.y)")
}
此代码将为您提供每次触摸屏幕时的坐标。您可以打印出来或直接贴在标签上进行测试。
@IBOutlet weak var imageView: UIImageView!
var coordinates = CGPoint.zero
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = touches.first{
coordinates = touch.location(in: imageView)
print(coordinates)
textLabel.text = "\(coordinates)"
}
}
因此,我也找到了我的问题的答案:我在 UIViewController 内部使用下面的代码在不同位置进行触摸时获取二维整数数组。感谢所有的帮助。
var positionArray = Array(repeating: Array(repeating: 0, count: 2), count: 10)
var counter = 0
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = touches.first {
let position = touch.location(in: self.view)
let locx = Int(position.x)
let locy = Int(position.y)
positionArray[counter] = [locx, locy]
print(positionArray[counter])
counter = counter + 1
}
}