52ky 发表于 2022-5-3 11:11:52

触摸位置响应协调

问题
我想计算发送到另一部手机时 touch.location 的响应
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    swiped = false
    if let touch = touches.first {
      lastPoint = touch.location(in: self.imageView)
      print (lastPoint.x)
    }
}
注意 iPhone 8 屏幕底部的黑线位于 iPhone 11 promax 的中心

在 iPhone 8 模拟器上

在 iphone11promax 模拟器上

回答
现在,你正在做这样的事情:

该点将更靠近左上角,因为 CGPoint(x:30, y:40) 更靠近像素密度较高的手机的左上角。

相反,请尝试以下操作:

一。从手机 A 获取点,即 100 x 100 像素。然后除以高度和宽度。点是 CGPoint(x: 0.3, y: 0.4)。

2. 用宽和高相乘显示手机B上的点。 0.3*200=60,0.4*200=80。该点现在将正确显示。

这仅在两部手机具有相同的纵横比时才有效,否则图像将被拉伸以填充目标手机。



页: [1]
查看完整版本: 触摸位置响应协调