ios - 如何在左侧导航栏项目上添加圆形图像

标签 ios swift xcode uikit uinavigationbar

我想在左侧导航栏项目上添加圆形图像作为按钮。我可以添加,但它不是圆,它是椭圆。这是我的代码。

let button = UIButton();
button.downloaded(from: user?.Image);
button.frame = CGRect(x: 0, y: 0, width: 36, height:36);
button.layer.cornerRadius = button.frame.width / 2;
button.layer.masksToBounds = true;
button.imageView?.contentMode = .scaleAspectFill;
let barBtn = UIBarButtonItem(customView: button);
self.navigationItem.leftBarButtonItem = barBtn;

您可以查看我的屏幕截图。你能帮帮我吗?

enter image description here

最佳答案

当下载的图像大于 (36, 36) 时会出现问题,它会重置 imageView 的框架,结果 UIbutton 的框架也会被重置。您需要在将图像分配给 imageView 之前调整图像大小,使其小于 (36,36)。

也不要让 UIButton 变圆,让 imageView 变圆。否则按钮的可触摸区域将减少。

使用:

button.imageView.layer.cornerRadius = button.imageView.frame.width / 2;
button.imageView.layer.masksToBounds = true;

代替:

button.layer.cornerRadius = button.frame.width / 2;
button.layer.masksToBounds = true;

请参阅以下有关调整图像大小的答案。

How to Resize image in Swift?

关于ios - 如何在左侧导航栏项目上添加圆形图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54561821/

相关文章:

iphone - 基于 View 的应用程序? - 请解释

iphone - 将 iOS 应用程序嵌入 Web 作为模拟

ios - 从 VoiceOver 隐藏 UITableViewCell

java - 如何在ios上将用户1的位置跟踪信息推送给用户2

objective-c - 如何使用 UIScrollView 或 UITableView 设计和创建 GridView

cocoa-touch - UIImageview 在 swift 中以编程方式

ios - 模态地呈现一个 View Controller ,就像 MFMailComposer

swift - @State 变量的值不会改变

swift - AWS APIGatewayClient(Swift) 在 Swift3 中不起作用?

objective-c - Xcode 中针对 Objective-C 的类似 JavaDoc 的文档?