簡體   English   中英

透明后,如何在UIView上檢測手勢?

[英]How to detect gesture on a UIView after it becomes transparent?

我在其他一些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變回其原始狀態以便在最初創建時可以檢測到更多手勢的正確方法是什么?

將UIView的alpha屬性設置為0將使其停止接收觸摸。 而是在不希望顯示背景時將其背景設置為UIColor.clearColor()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM