Gha*_*lah 1 tags uiimageview ios
我以前发现过类似的问题,但没有一个得到令人满意的回答。我可以获得用户点击的点的坐标,但是如果在具有不同大小和分辨率的不同设备上查看相同的图像,则必须恢复相同的位置时会出现我的问题。请参考所附图片。我必须在用户点击 imageView 的任何地方放置加号图标。它基本上标记了图像的不同部分。现在,当我尝试使用旧设备的坐标将这些加号图标放在同一图像上但放在不同的设备上时,自然不会映射确切的位置。有人可以帮助我使此标记功能通用或动态,以便可以在每个设备上复制相同的位置吗?
我有你想要的一样的。你能试试这个吗?它会帮助你。
UIImageView
时,我找到了 的接触点。UIImageView
您必须计算UIImageView
基于height
和的百分比width
,因此它适用于所有设备。//Your imageView add tapGestureRecognizer event
imageView.isUserInteractionEnabled = true
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(tapAction))
self.imageView.addGestureRecognizer(tapGestureRecognizer)
@objc func tapAction(sender: UITapGestureRecognizer) {
let touchPoint = sender.location(in: self.imageView)
print(touchPoint)
var z1 = touchPoint.x
var z2 = touchPoint.y
print("Before Alert Touched point (\(self.z1), \(self.z2)")
//convert point into Percentage
let z1per = z1 * 100 / self.imageView.frame.size.width
let z2per = z2 * 100 / self.imageView.frame.size.height
print("After Alert Touched point (\(self.z1per), \(self.z2per)")
//whatever you want to add like button or image on tap action.
let btn = UIButton(frame: CGRect(x: touchPoint.x - 15, y: touchPoint.y - 15, width: 30, height: 30))
btn.layer.cornerRadius = 15
btn image = UIImage(named: "marker.png") as UIImage?
btn.setImage(image, for: .normal)
self.imageView.addSubview(btn)
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
360 次 |
最近记录: |