복붙노트

[SWIFT] 한 언론과 긴 언론 이벤트 SWIFT에있는 UIButton

SWIFT

한 언론과 긴 언론 이벤트 SWIFT에있는 UIButton

해결법


  1. 1.당신은 하나의 탭 당신과 길게 누르면 어떤 작업을 수행 할 경우, 당신은 버튼에 이런 식으로 동작을 추가 할 수 있습니다 :

    당신은 하나의 탭 당신과 길게 누르면 어떤 작업을 수행 할 경우, 당신은 버튼에 이런 식으로 동작을 추가 할 수 있습니다 :

    @IBOutlet weak var btn: UIButton!
    
    override func viewDidLoad() {
    
        let tapGesture = UITapGestureRecognizer(target: self, #selector (tap))  //Tap function will call when user tap on button
        let longGesture = UILongPressGestureRecognizer(target: self, #selector(long))  //Long function will call when user long press on button.
        tapGesture.numberOfTapsRequired = 1
        btn.addGestureRecognizer(tapGesture)
        btn.addGestureRecognizer(longGesture)
    }
    
    @objc func tap() {
    
        print("Tap happend")
    }
    
    @objc func long() {
    
        print("Long press")
    }
    

    이 방법 당신은 하나의 버튼에 대해 여러 방법을 추가 할 수 있으며 단지에 대한 그 버튼에 대한 출구가 필요합니다 ..


  2. 2.

    @IBOutlet weak var countButton: UIButton!
    override func viewDidLoad() {
        super.viewDidLoad()
    
        addLongPressGesture()
    }
    @IBAction func countAction(_ sender: UIButton) {
        print("Single Tap")
    }
    
    @objc func longPress(gesture: UILongPressGestureRecognizer) {
        if gesture.state == UIGestureRecognizerState.began {
            print("Long Press")
        }
    }
    
    func addLongPressGesture(){
        let longPress = UILongPressGestureRecognizer(target: self, action: #selector(longPress(gesture:)))
        longPress.minimumPressDuration = 1.5
        self.countButton.addGestureRecognizer(longPress)
    }
    

  3. 3.왜, 사용자 정의있는 UIButton 클래스를 생성 프로토콜을 작성하고 버튼을 delegte에 정보를 다시 보낼 수 없습니다. 이 같은:

    왜, 사용자 정의있는 UIButton 클래스를 생성 프로토콜을 작성하고 버튼을 delegte에 정보를 다시 보낼 수 없습니다. 이 같은:

        //create your button using a factory (it'll be easier of course)
        //For example you could have a variable in the custom class to have a unique identifier, or just use the tag property)
    
        func createButtonWithInfo(buttonInfo: [String: Any]) -> CustomUIButton {
            let button = UIButton(type: .custom)
            button.tapDelegate = self
            /*
    Add gesture recognizers to the button as well as any other info in the buttonInfo
    
    */
            return button
        }
    
        func buttonDelegateReceivedTapGestureRecognizerFrom(button: CustomUIButton){
            //Whatever you want to do
        }
    
  4. from https://stackoverflow.com/questions/30859203/uibutton-with-single-press-and-long-press-events-swift by cc-by-sa and MIT license