UIBarButtonItem 仅在按下足够长的时间时才会触发动作

Posted

技术标签:

【中文标题】UIBarButtonItem 仅在按下足够长的时间时才会触发动作【英文标题】:UIBarButtonItem triggers action only when pressed for long enough 【发布时间】:2013-05-23 23:00:47 【问题描述】:

我有一些简单的 UIBarButtonsItems(除了改变样式、颜色和 alpha 之外没有自定义)。一段时间以来,一切都运行良好。但是现在我需要在触发操作之前长时间(4-5 秒)按下 BarButton。 我只是移动了工具栏并更改了颜色和 alpha,之后这种情况开始发生。我不完全明白是什么导致了这种行为变化。 我使用界面构建器来构建视图并通过 Ctrl+Dragging 将操作分配给 UIBarButtonItems。 我尝试在谷歌等上查找很多内容。大多数问题都是关于 UIBarButtons 根本没有响应的。我仍然尝试了清理项目构建和 Xcode 缓存的解决方案。但什么都没有改变。 有人可以帮我解决这个问题吗?

【问题讨论】:

当您使用模拟器和鼠标光标点击按钮时会发生同样的事情吗? 是的,它在模拟器和实际设备上的工作方式相同且不正确。 即使删除整个工具栏并从头开始创建其中的所有内容也无济于事。同样的行为仍然存在。项目中带有 UIToolbars 的旧笔尖工作正常。这只是发生在我后来添加的几个笔尖上。我希望 UIToolbar 在包含 UIToolbar 的视图的子视图中不是问题,因为它在一段时间内工作正常。 【参考方案1】:

我意识到我的错误。我有两个事件在同一空间中被触发。第一个是在视图的特定区域点击时显示工具栏(即增加其 alpha),第二个当然是 UIBarButtonItem 的按钮点击事件。在该区域中点击时,第一个事件被触发,最终当长时间按下时,一旦工具栏可见(如果工具栏之前不可见),它也会触发第二个事件。 很抱歉打扰大家。

【讨论】:

以上是关于UIBarButtonItem 仅在按下足够长的时间时才会触发动作的主要内容,如果未能解决你的问题,请参考以下文章

自定义“按下” UIBarButtonItem 背景

didDeselectRowAtIndexPath 仅在按下另一个单元格后调用[重复]

WPF Focused Visual State 仅在按下按钮时才会启动,为啥?

JS / Canvas - 如何仅在按下键时更新 draw() 函数?

如何仅在按下键时更改值?

迅速!仅在按下按钮时创建一个segue!标签栏控制器