2016-08-13 74 views
0

我試圖觸發按鈕時,我將手指拖過,而不是直接按下它。我嘗試了所有與按鈕相關的事件,而且沒有任何組合工作。我也嘗試了輕拍手勢,輕掃手勢和平移手勢。當我按下按鈕並拖動它時,這些按鈕不會觸發按鈕。手指拖動時觸發按鈕它

override func viewDidLoad() { 
    super.viewDidLoad() 

    let button = UIButton(frame: CGRect(x: 0, y: 49, width: 568, height: 8)) 
    button.backgroundColor = .greenColor() 
    button.setTitle("Test Button", forState: .Normal) 
    button.addTarget(self, action: #selector(buttonAction), forControlEvents: .TouchUpInside) 

    self.view.addSubview(button) 
} 

func buttonAction(sender: UIButton!) { 
    print("Button tapped") 
} 

@IBAction func s2(sender: AnyObject) { 

print("1")  

} 
+1

將手勢識別器添加到'UIButton'。將你試過的代碼添加到你的問題中。 –

+0

您會在手指第一次出現的視圖中看到事件,因此您需要透明地查看所有與手勢相關的手勢識別器或僅使用原始觸摸事件處理的視圖,然後您需要跟蹤視圖的座標並將它們映射到UIButton的座標中以檢測何時發生拖動。 – par

+0

我也嘗試了平底鍋手勢的故事板方法,它讓我點擊了裏面的按鈕,不管它在哪裏,只要我拖動鼠標,它就會按下按鈕 – c3n3

回答

0

添加UIPanGestureRecognizer到您的按鈕。

let panGesture = UIPanGestureRecognizer(target: self, action: #selector(doSomething)) 
button.addGestureRecognizer(panGesture) 

func doSomething() { 
    //do something here 
} 
相關問題