代码之家  ›  专栏  ›  技术社区  ›  Cristian

裁剪要遮罩的uiimage

  •  0
  • Cristian  · 技术社区  · 6 年前

    我有一个包含另一个uiimage的掩码的uiimage。唯一的问题是,当我点击面具外面的区域时,脚本仍然认为我在点击图像。

    let tap = UITapGestureRecognizer()
    override func viewDidLoad() {
        super.viewDidLoad()
    tap = UITapGestureRecognizer(target: self, action: #selector(ViewController.handleTap(_:)))
    tap.numberOfTapsRequired = 1
    tap.numberOfTouchesRequired = 1
    
    let imageMask = UIImageView()
    imageMask.image = ...//Image to mask to
    imageMask.frame = imageView.bounds
    
    imageView = UIImageView(image: ...)
    imageView.mask = imageMask
    
    imageView.addGestureRecognizer(tap)
    }
    
    @objc func handleTap(_ sender: UITapGestureRecognizer) {
        print("hello")
        //prints "hello" when tapped Image outside of mask
    }
    

    如何将图像完全裁剪到遮罩上,使其不会在遮罩外注册抽头?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Francesco Destino    6 年前

    用这个代替两个图像视图

    let overMask = UIView()
    overMask.frame = imageView.bounds
    overMask.isUserInteractionEnabled = true
    
    imageView = UIImageView(image: ...)
    imageView.mask = overMask
    
    imageView.addGestureRecognizer(tap)
    
    overMask.addSubview(imageView)