在UIImageView上检测到触摸背景
我有一个UIImageView加载了几张不同尺寸的不同图片,并用黑色背景填充了UIImageView的其余区域。我试图找到一种方法,在黑色背景上的任何地方点击,但不在图像上,将隐藏UIImageView。无论如何要做到这一点?在UIImageView上检测到触摸背景
编辑:
这是屏幕的布局。我试图做起来很攻随时随地在黑色区域会隐藏大图像,并只显示在后台剩下的事情看起来像这样:
大图像和黑色的背景都在一个UIImageView中。我只需要一种方法来检测黑色区域中的水龙头,然后我可以设置imageview.hidden = true
这是一类UIViewController
将实现功能。它看起来像你正在使用UICollectionView
,但它应该仍然工作。
import UIKit
class ViewController: UIViewController {
let imageView = UIImageView()
var gesture = UITapGestureRecognizer()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
gesture = UITapGestureRecognizer(target: imageView, action: #selector(ViewController.gestureActivated))
gesture.numberOfTapsRequired = 1
gesture.numberOfTouchesRequired = 1
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func gestureActivated() {
let tap = gesture.location(in: imageView)
if let image = imageView.image?.accessibilityFrame {
if !image.contains(tap) {
imageView.isHidden = true
}
}
}
}
在viewDidLoad
我给图像观看UIGestureRecognizer
当一个手指被用于一次点击它时被激活。水龙头制成后,调用gestureActivated
函数。
然后用图像视图中的水龙头位置创建常量。
获得水龙头的位置后,我们检查它是否在图像上。如果不是,那么我们隐藏图像视图。
我的imageview包含黑色背景以及图像本身,我希望手势只能在点击黑色背景时识别,但不能在点击图像时识别 – Mark
您是否确认在选择图像时操作会被触发? –
@Mark,我更新了我的答案。 –
请提供您的**代码** –
您需要在您的问题中提供更多详细信息,否则它可能会因为信息太广泛和/或信息不足而无法回答。 – AlBlue