在带有个人资料图片的条形按钮项目上设置掩码
Posted
技术标签:
【中文标题】在带有个人资料图片的条形按钮项目上设置掩码【英文标题】:Setting mask on bar button item with profile picture 【发布时间】:2021-02-28 03:18:46 【问题描述】:我一直在努力将圆形个人资料图片设置为条形按钮项目。图片来自使用 SDWebImage 的 URL。当我运行该应用程序时,该项目显示为一个正方形,并且所有其他右栏按钮项目都向左移动。尝试将对象设置为 UIButton 时也遇到了同样的问题。有谁知道我如何在对象上设置圆形遮罩,和/或为什么其他条形按钮项目向左移动?
@IBOutlet weak var myAvatarButton: UIBarButtonItem!
didSet
guard let userImageURL = CurrentUser.shared.imageURL else
return
let avatarImage = UIImageView()
avatarImage.sd_setImage(with: userImageURL, placeholderImage: #imageLiteral(resourceName: "noProfilePhoto"), options: [.refreshCached, .retryFailed, .highPriority]) [weak self] (image, error, cacheType, imageURL) in
self?.myAvatarButton.image = image?.withRenderingMode(UIImage.RenderingMode.alwaysOriginal)
【问题讨论】:
【参考方案1】:在viewDidLoad
添加myAvatarButton.clipsToBounds = true
可能会起作用。
但更好的方法是在您的UIBarButtonItem
中使用customView
。
【讨论】:
【参考方案2】:试试这个:
...
let avatarImage = UIImageView()
avatarImage.layer.clipsToBounds = true
avatarImage.layer.cornerRadius = avatarImage.frame.width / 2
...
它应该将cornerRadius 设置为精确的值以使您的视图呈圆形。
【讨论】:
【参考方案3】:因为我是从 URL 以编程方式获取图像,所以这有点棘手。事实证明,最简单的方法是将 UIImageView 嵌入到可以通过情节提要插入导航栏的视图中。从那里,我创建了一个 IBOutlet 并更改了圆角半径。调整图像视图的宽度后,其他条形按钮也不再移动。
【讨论】:
以上是关于在带有个人资料图片的条形按钮项目上设置掩码的主要内容,如果未能解决你的问题,请参考以下文章