首页 > 解决方案 > 在 iOS 中,有没有办法添加(覆盖) UIBarButtonItem 图像的子视图,而无需移动栏中已有的按钮?

问题描述

我的 swift 5 应用程序正在运行,现在我正在添加一个“工具提示”功能,解释屏幕的每个部分的作用。

我采用的方法是来自在线文章 - 添加灰色的子视图以使背景变暗,然后再添加正在描述的项目的子视图,因此现在突出显示,然后还添加解释器的子视图气泡解释突出显示的项目。

这很好用,只要我使用的 UIView 不是来自 UIBarButtonItem。如果是这样,灰色屏幕下方的条形按钮会四处移动以适应他们认为添加的另一个条形按钮,这会导致所有内容未对齐。其他按钮没有这个问题,只有UIBarButtons。

任何意见是极大的赞赏。谢谢。

标签: iosswiftalignmenttooltipuibarbuttonitem

解决方案


您是否将重复的子视图添加到栏本身?将它添加到屏幕而不是栏可能会更好,这样它就不会影响栏的布局。为了获得相对于视图控制器的框架,以便您可以在正确的位置显示您的副本,您可以使用:

barButtonItem.convert(barButtonItem.bounds, to: self.view)

假设self是一个UIViewController


推荐阅读