首页 > 解决方案 > UIBarButtonItem 形状不正确

问题描述

我想在导航栏的右上角创建一个收藏按钮。我想使用星形图标,所以我创建了一个 UIButton 并将其嵌入到 UIBarButtonItem 中。但是,即使我手动设置它的大小,条形按钮也是超宽的。

还有一个问题是我这里用的图其实是苹果iOS编程入门教程中的白星。但是,它在屏幕上显示为一颗蓝星。我不知道为什么。

let button = UIButton(type: .system)
button.frame = CGRect(x: 0, y: 0, width: 34, height: 34)
button.setImage(UIImage(named: "filledStar"), for: .normal)
button.addTarget(self, action: #selector(bookmarkCourse(_:)), for: .touchUpInside)

let barButtonItem = UIBarButtonItem(customView: button)
navigationItem.rightBarButtonItem = barButtonItem

在此处输入图像描述

标签: swiftuibuttonuinavigationbaruibarbuttonitem

解决方案


首先将您配置UIButton为自定义按钮:

let button = UIButton(type: .custom)

其次,您的图像资产很可能过大。我这样做的方法是按照 Apple 的指导上传重新缩放的图像。然后,您还可以删除设置帧大小的代码行。

导航栏和工具栏图标大小 在准备自定义导航栏和工具栏图标时,请使用以下大小作为指导,但可以根据需要进行调整以创建平衡。

目标尺寸 72px × 72px (24pt × 24pt @3x) 48px × 48px (24pt × 24pt @2x) 最大尺寸 84px × 84px (28pt × 28pt @3x)56px × 56px (28pt × 28pt @2x)

https://developer.apple.com/design/human-interface-guidelines/ios/icons-and-images/custom-icons/


推荐阅读