【问题标题】:UIButton created programmatically. How do I send touch up's to an IBAction?UIButton 以编程方式创建。如何将修饰发送到 IBAction?
【发布时间】:2011-03-11 21:46:46
【问题描述】:

我有一个以编程方式创建的 UIButton。如何让这个 UIButton 将其修饰事件发送到我拥有的 IBAction?

【问题讨论】:

    标签: iphone objective-c uibutton


    【解决方案1】:

    addTarget:action:forControlEvents: 方法。

    [myButton addTarget:myClass action:@selector(myEventHandler) forControlEvents: UIControlEventTouchUpInside];
    

    来自http://developer.apple.com/library/ios/#documentation/uikit/reference/UIControl_Class/Reference/Reference.html

    【讨论】:

    • 选中会收到一个参数:(id)sender
    【解决方案2】:

    使用这行代码,您将通过编程方式触发 UIbutton 操作

    [button sendActionsForControlEvents:UIControlEventTouchUpInside];
    

    快速

    button.addTarget(self, action:#selector(functionNameHere), for: UIControl.Event.touchUpInside)
    

    【讨论】:

    • 只有这样才能回答问题
    【解决方案3】:
    [button addTarget:self 
               action:@selector(myMethod:)
     forControlEvents:UIControlEventTouchUpInside];
    

    像魔法一样 =)

    【讨论】:

    • 通常他们使用UIControlEventTouchUpInside。反应应该是在按钮释放时,而不是在按下时。并且用户应该可以选择通过移开手指来改变主意。
    【解决方案4】:

    Swift 3.0

    button.addTarget(self, action:#selector(funcName), for: UIControlEvents.touchUpInside)
    

    【讨论】:

      【解决方案5】:

      斯威夫特 5

      您还可以发送发送者来识别触摸的按钮。另外,别忘了在你的函数名前加上 objc:

      private func setOnClicks() {
          btn.addTarget(self, action: #selector(onBtnClick), for: .touchUpInside)
      }
      
      @objc func onBtnClick(_ sender: UIButton) -> Void {
          print("touched \(sender.tag)")
      }
      

      【讨论】:

        【解决方案6】:

        使用addTarget(,action:,for:)UIButton 轻松设置添加操作

        let addVehicleButton = UIButton() // Create a button
        addVehicleButton.setTitle("Add vehicle", forState: .normal) // set title
        addVehicleButton.frame = CGRectMake(20, 50, 50, 40) // setting frame
        addVehicleButton.addTarget(self, action: #selector(addVehicleButtonClickedAction), for: .touchUpInside) // Add target and control event with trigger function selector
        self.view.addSubview(addVehicleButton) // adding to superview
        

        // MARK: - 点击动作句柄

        /// Add vehicle button clicked action
            @objc func addVehicleButtonClickedAction() {
        
            }
        

        【讨论】:

        • 谢谢,但最好在发布答案时添加解释:)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-27
        • 2010-11-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多