ios - 快速获取 ImageView 的当前位置
问题描述
这是我第一次尝试快速构建应用程序,所以请原谅我的理解非常有限。
在我将 ImageView 添加到我的 ViewController 之后,连接了一个 Pan Gesture Recognition 并添加了能够移动 ImageView 的代码,这工作得很好,我现在希望能够获得我的 ImageView 中间的当前坐标移动它。目标是能够计算屏幕中间和 ImageView 中间之间的欧几里德距离,以便检测与 ImageView 周围的 Circle 的碰撞,但现在,仅仅能够打印坐标就真的帮我。感谢您提供有关如何解决此问题的任何建议或提示。
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
@IBOutlet weak var questImg: UIImageView!
@IBAction func panMade(_ sender: UIPanGestureRecognizer) {
if sender.state == .began || sender.state == .changed {
let translation = sender.translation(in: sender.view)
let changeX = (sender.view?.center.x)! + translation.x
let changeY = (sender.view?.center.y)! + translation.y
sender.view?.center = CGPoint(x: changeX, y: changeY)
sender.setTranslation(CGPoint.zero, in: sender.view)
}
}
}
解决方案
要获取 UIImageView 的位置,您可以使用 frame.origin,如下所示:
@IBAction func panMade(_ sender: UIPanGestureRecognizer) {
if sender.state == .began || sender.state == .changed {
let translation = sender.translation(in: sender.view)
let changeX = (sender.view?.center.x)! + translation.x
let changeY = (sender.view?.center.y)! + translation.y
var coordX = questImg.frame.origin.x
var coordY = questImg.frame.origin.y
print(coordX + "," + coordY)
sender.view?.center = CGPoint(x: changeX, y: changeY)
sender.setTranslation(CGPoint.zero, in: sender.view)
}
推荐阅读
- c - 如何获取结构的结构信息
- java - 仅当元音不以单词开头时才删除
- woocommerce - 有条件地隐藏定价;需要从标签/自定义分类中可见
- c++ - 我在理解 AVX shuffle 内在函数如何为 8 位工作时遇到一些问题
- javascript - 使用时刻检查时间是否介于两次之间无法正常工作
- google-apps-script - 在 Google Apps 脚本中,是否可以使用 try/catch 捕获超时,或者它是否发生在更高级别?
- javascript - 使用猫鼬在 mongodb 中按月收集?
- java - 如何处理具有 2 个输入和 2 个输出的过程的错误异常?
- flutter - 如何在 Flutter 中为这个 api 数据添加分页?
- python - 无法使用以下 python 代码保存文件。AttributeError:“数组”对象没有属性“保存”