对于 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 将仅在长按时突出显示,而不是在点击时突出显示的主要内容,如果未能解决你的问题,请参考以下文章

iOS安全区域无法在真实设备上运行

UITabbar 在 iOS 10 但不是 11+

indexPath.row 在 iPhone 6 模拟器上的计算不正确,但不是 4s/5/5s/6plus

对于相同的 iPhone 5s,iOS 模拟器在 ios 7.1 和 ios 8.2 之间具有不同的屏幕高度

iOS 项目适用于 iPhone,但不适用于模拟器

在ios模拟器上成功构建skia,但无法在我的iphone上运行