2016-03-19 8 views
0

長押しのジェスチャーを検出するために、他のUIコンポーネントの上にUIViewがあります。長いプレスが始まると、私は背景色を灰色の&アルファ= 0.1に変更して、ユーザーに指摘します。透明になった後にUIViewでジェスチャーを検出する方法?

長押しの後、UIViewを完全に透明に戻す必要があります。アルファを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を作るための正しい方法は何ですか?

答えて

5

UIViewのalphaプロパティを0に設定すると、タッチの受信を停止します。代わりに、背景を非表示にしたい場合は、その背景をUIColor.clearColor()に設定します。

関連する問題