【问题标题】: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)
        }
    }
}

【问题讨论】:

    标签: ios swift


    【解决方案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 并更改了圆角半径。调整图像视图的宽度后,其他条形按钮也不再移动。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-07-15
          • 2011-05-17
          • 1970-01-01
          • 2020-01-10
          • 2014-04-14
          • 1970-01-01
          相关资源
          最近更新 更多