gpt4 book ai didi

IOS X,Y 坐标来自图像

转载 作者:行者123 更新时间:2023-11-29 01:21:52 25 4
gpt4 key购买 nike

我是来自 Android 的 IOS 编程新手,我正在尝试获取 X、Y 坐标以双击屏幕,但我需要与图像本身相关的坐标,而不是 ImageView 。

这是我的 View Controller 代码

class ThirdViewController: UIViewController, UIScrollViewDelegate
{
@IBOutlet var scrollView: UIScrollView!
@IBOutlet weak var imageView: UIImageView!
var firstPass:String!
var secondPass:String!

override func viewDidLoad() {
super.viewDidLoad()
self.scrollView.minimumZoomScale=1.0
self.scrollView.maximumZoomScale=20.0
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: Selector("tapAction:"))
tapGestureRecognizer.numberOfTapsRequired=2
self.imageView.userInteractionEnabled = true
self.imageView.addGestureRecognizer(tapGestureRecognizer)
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
return self.imageView
}

func tapAction(sender: UITapGestureRecognizer) {
let touchPoint = sender.locationInView(self.imageView)
let Z1:String = String(touchPoint.x)
let Z2:String = String(touchPoint.y)
print( "YES It Works X= " + Z1 + " Y= " + Z2)

}
print( "It Works X= " + Z1 + " Y= " + Z2)
}


}

这工作正常,双击它会打印坐标

图像是 Imageview 内的 PNG,而 Imageview 又位于 Scrollview 内

PNG 的尺寸为 6400px X 4100px,但如果我双击 ImageView 的右下角而不是 6400,4100,我会得到 478,415,所以它显然是使用 ImageView 中的坐标

在 android 中我会使用 PointF 来获取这些

Swift 中是否有等价物

我正在使用 Xcode 7 和 Swift 2.0

感谢任何帮助

标记

最佳答案

您需要捕获以下两件事:

  1. 图像大小
  2. 帧大小(即 imageView 大小)

有了这个,你需要计算实际触摸点。

以下代码可能对您有帮助:

 var touchPoint = gestureRecognizer.locationInView(self.photoImageView)

touchPoint.x = touchPoint.x * (photoImageView.image?.size.width)! / photoImageView.frame.width
touchPoint.y = touchPoint.y * (photoImageView.image?.size.height)! / photoImageView.frame.height

print("Touched point (\(touchPoint.x), \(touchPoint.y)")

希望这对您有所帮助。

关于IOS X,Y 坐标来自图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34501132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com