我在其他一些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
更改回其原始状态的正确方法是什么,以便在最初创建时可以检测到其他手势?
答案 0 :(得分:6)
将UIView的alpha
属性设置为0将使其停止接收触摸。相反,当您希望它不可见时,将其背景设置为UIColor.clearColor()
。