按下时以编程方式移除 UIBarButtonItem 上的灯光?

Posted

技术标签:

【中文标题】按下时以编程方式移除 UIBarButtonItem 上的灯光?【英文标题】:remove light on UIBarButtonItem programatically when pressed? 【发布时间】:2012-12-21 17:02:44 【问题描述】:

我知道我可以创建一个 UIButton 并使用 UIButton 初始化 UIBarButtonItem。有了这个解决方案,我们可以避免这个问题。

解决办法:

How to remove/avoid small white splash light on UIBarButtonItem programatically

但我需要 UIBarButtonItem 来调用 Popover,而 popover 只能是来自 UIBarButtonItem 的调用

[self.myPickerPopover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];

presentPopoverFromBarButtonItem:sender

然后,当我尝试使用 UIButton 解决方案时,应用程序会崩溃,因为我是从 Button 而不是从 BarButtonItem 呈现 Popover。

有解决问题的办法吗?有什么想法可以删除灯光吗?

谢谢

【问题讨论】:

但是你仍然有一个 UIBarButtonItem 作为你的 UIButton 的“超级视图”,对吧?您只是将 UIButton 设置为 UIBarButtonItem 的 customView。您是否尝试为 UIButtons 的超级视图 UIBarButtonItem 调用 presentPopoverFromBarButtonItem ? 查看如何从 UIButton 获取 UIBarButtonItem:***.com/a/9578399/1691231 你说得对,解决方案很简单。只是:[self.myPickerPopover presentPopoverFromBarButtonItem:MY BAR BUTTON ITEM HERE (not the sender) allowedArrowDirections:UIPopoverArrowDirectionDown animated:YES];谢谢 我已将我的 cmets 放入答案中,请接受它,以免此问题在问题列表中显示为未回答。 【参考方案1】:

只需为 UIBarButtonItem 而不是您的 UIButton 调用 presentPopoverFromBarButtonItem。

[self.myPickerPopover presentPopoverFromBarButtonItem:--UIBarButtonItem here, not UIButton -- permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];

查看如何从 UIButton 获取 UIBarButtonItem: ***.com/a/9578399/1691231

【讨论】:

以上是关于按下时以编程方式移除 UIBarButtonItem 上的灯光?的主要内容,如果未能解决你的问题,请参考以下文章

Swift - 按下时为按钮创建径向线

如何在按钮按下时删除子/精灵?

在Objective-C中的搜索栏内按下时,UISearchController会触及安全区域

如何在nib文件中按下时禁用UIButton高亮显示?

按下时使按钮填充 UITableView

按下时更改 QPushButton 颜色