对于 iPhone - 但不是 iOS 模拟器 - UIToolbar UIBarButtonItem 将仅在长按时突出显示,而不是在点击时突出显示

Posted

技术标签:

【中文标题】对于 iPhone - 但不是 iOS 模拟器 - UIToolbar UIBarButtonItem 将仅在长按时突出显示,而不是在点击时突出显示【英文标题】:For iPhone – but not iOS Simulator – UIToolbar's UIBarButtonItems will highlight only on long press, rather than on tap 【发布时间】:2017-05-13 17:33:13 【问题描述】:

我有一部运行 ios 10.3.1 的 iPhone 5s。在一个新的UIViewController中,我设置self.toolbarItems如下:

self.toolbarItems = [
  UIBarButtonItem(title: "Hi", style: .plain, target: self, action: #selector(sayHi)),
  UIBarButtonItem(barButtonSystemItem: .refresh, target: self, action: #selector(redoIt))
]

在 iOS 模拟器上,单击其中任何一个都会立即使 barButtonItem 突出显示。但是,在我的 iPhone 上,这些按钮仅在长按时才会突出显示(可能是半秒长);单击可激活按钮的操作,但不要突出显示它。这是预期的行为吗?

【问题讨论】:

【参考方案1】:

是的,这是预期的 UIBarButtonItem 行为。您可以在默认的苹果应用程序中尝试不同的栏按钮,例如联系人、照片等。您将看到相同的行为,您必须按住它一段时间才能看到突出显示的状态。

如果您真的想要它,您必须进行自定义实现。 看看UIControlEvents

【讨论】:

以上是关于对于 iPhone - 但不是 iOS 模拟器 - UIToolbar UIBarButtonItem 将仅在长按时突出显示,而不是在点击时突出显示的主要内容,如果未能解决你的问题,请参考以下文章