swift - 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
解决方案
首先将您配置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/
推荐阅读
- python-3.x - 如何为openx koa 版本安装Figures Plugin
- r - 努力在 r 闪亮的应用程序中获得输出
- javascript - Codeigniter 4 Ajax在更新数据时返回303
- c# - 使用 C# 更改 802.1X 设置
- tableau-api - 在 Tableau 中显示绝对值和百分比值
- react-native - react native 的访问控制
- ruby - 在 ETL 过程中使用 Kiba(或纯 Ruby)转置 CSV 行和列
- python - 如何从其他三个现有列有条件地创建三个单独的列?
- tags - 如何在帖子上显示特定标签?
- c++ - 如何从函数指针内部发出 Qt 信号?