2016-12-07 77 views
0

我有一個包含三個按鈕的視圖。在按下時調用一個功能並在釋放時調用另一個功能的按鈕?

一個按鈕開始錄製音頻,另一個按鈕停止錄製音頻,第三個按鈕播放錄製的音頻。

我想濃縮記錄開始和停止到一個按鈕,以便按下它時記錄,但然後釋放時停止記錄。

我嘗試用兩個事件上的一個按鈕,觸摸到開始拍攝,然後觸摸起來裏面來阻止它這樣做,但它似乎並沒有正常工作。

回答

0

而不是使用UIButton,您應該創建一個視圖並將其設置爲您想要的按鈕。

然後依靠觸摸開始&結束的方法來提供您想要的功能。

在這種特殊情況下,我創建了一個可以使用的自定義視圖類。

下面的代碼是對雨燕3.0:

class TouchView : UIView { 
    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
     super.touchesBegan(touches, with: event) 

     // Start recording 
    } 

    override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) { 
     super.touchesEnded(touches, with: event) 

     // End recording 
    } 
} 
0

使用一個UIButton到您已連接一個UILongPressGestureRecognizer。當識別器確定用戶正握住手指放在視圖上時,您會收到.began消息,手指擡起時會收到.ended消息。設置按鈕isSelected以指示「停機」狀態:

@IBAction func doPress(_ sender: UILongPressGestureRecognizer) { 
    switch sender.state { 
    case .began: 
     (sender.view as! UIControl).isSelected = true 
     // start recording 
    case .ended: 
     (sender.view as! UIControl).isSelected = false 
     // stop recording 
    default: break 
    } 
} 
相關問題