如何在UIView变透明后检测手势?

时间:2016-03-19 03:04:13

标签: ios swift cocoa-touch uiview

我在其他一些UI组件上面有UIView来检测长按手势。当长按开始时,我想通过将背景颜色更改为灰色和&来提示用户。 alpha = 0.1。

长按结束后,UIView必须更改为完全透明。我将其alpha设置为0,但问题是......

无法再检测到其他信息。

mainView = UIView()
mainView.frame = ...
let longPressRecognizer = UILongPressGestureRecognizer(target: self, action:Selector("longPressed:"))
mainView.addGestureRecognizer(longPressRecognizer)

func longPressed(sender: UILongPressGestureRecognizer) {
    let view = sender.view!

    if sender.state == .Began {
        view.backgroundColor = UIColor.grayColor()
        view.alpha = 0.1
    } else if (sender.state == .Ended || sender.state == .Cancelled || sender.state == .Failed) {
        view.backgroundColor = UIColor.whiteColor()
        view.alpha = 0
    }
}

UIView更改回其原始状态的正确方法是什么,以便在最初创建时可以检测到其他手势?

1 个答案:

答案 0 :(得分:6)

将UIView的alpha属性设置为0将使其停止接收触摸。相反,当您希望它不可见时,将其背景设置为UIColor.clearColor()