【问题标题】:iOS/Swift: How to implement doubletap action for backButton? [duplicate]iOS/Swift:如何为后退按钮实现双击动作? [复制]
【发布时间】:2018-04-06 04:14:53
【问题描述】:

我正在尝试为我的应用程序中的每个 ViewController 实现一个自定义后退按钮。我希望它有两个动作。如果按钮被单击,它应该会给出 toast 警告。如果按钮被双击,它应该返回到 ViewController。

我怎样才能在 swift 中只为后退按钮实现这一点?

【问题讨论】:

  • 恕我直言,我认为这种用户体验会违反直觉。也许你可以重新思考为什么会想要这个。或者有一个未推送的视图控制器。推送视图控制器具有用户期望的用户体验
  • UIButton 还是 UIBarButton ?
  • 是否以编程方式无关紧要,我必须完成任务,是否使用 UIbutton 无关紧要
  • 重复您自己的问题? stackoverflow.com/q/49627777/3207014

标签: ios swift uinavigationbar


【解决方案1】:

试试这个以使用单击和双击的条形按钮

/// Tap Gesture to Handle Double Tap
let tapGesture : UITapGestureRecognizer = UITapGestureRecognizer.init(target: self, action: #selector(SourceVC.handleGesture(getsure:)))
        tapGesture.numberOfTapsRequired = 2

/// Custom Button That With Handle two actions
let customButtonn : UIButton = UIButton(frame: CGRect(x: 0, y: 0, width: 30, height: 30))
customButtonn.setTitleColor(UIColor.blue, for: .normal)
customButtonn.setTitle("button", for: .normal)
customButtonn.addTarget(self, action: #selector(SourceVC.navButton(sender:)), for: .touchUpInside)
customButtonn.addGestureRecognizer(tapGesture)

/// Create a Custom bar Button  
let navLeftButton = UIBarButtonItem()
navLeftButton.customView = customButtonn

/// Assign it to navigation Bar
self.navigationItem.leftBarButtonItem = navLeftButton

SourceVC 类中我的自定义按钮操作

/// Single Tap
@objc func navButton(sender:UIButton){
        print("navButtonTapped Once")
      }

/// Double Tap
@objc func handleGesture(getsure:UITapGestureRecognizer){
        print("navButtonTapped twice")
      }

模拟器输出:

控制台输出:

注意 - 这样做会将默认值移回该栏,您需要对其进行自定义设计,使其看起来像在模拟器输出中显示的那样 - 按钮出现时没有该背景图像

【讨论】:

  • 欢迎,乐于助人
【解决方案2】:

您无法修改 BackBarButtonItem 的操作和行为,您可以创建一个自己的 UIBarButtonObject 并将其分配为您的 leftBarButtonItem,同时给它您自己的选择器

需要注意的一点是,这将删除股票后退按钮图像。

【讨论】:

  • 好的,如果我以编程方式制作按钮,你能指导我完成任务吗
【解决方案3】:

试试这个:

let doubleTap = UITapGestureRecognizer(target: self, action: #selector(actingFunction))
    DoubleTap.numberOfTapsRequired = 2
    barButton.addGestureRecognizer(doubleTap)

【讨论】:

  • 您无法向UIBarButtonItem 添加手势。
猜你喜欢
  • 2015-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-10
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
相关资源
最近更新 更多