【问题标题】:Set a border to UIButton with Star Image使用 Star Image 为 UIButton 设置边框
【发布时间】:2019-11-30 00:07:31
【问题描述】:

我需要为UIButton 图像设置边框。我的按钮图像如下所示。

我不能为此使用多个图标,因为图像边框的颜色是服务器驱动的并且来自 Web 服务响应。

所以 我不想在我的代码库中硬编码 40-50 个图标。我只有一个白色背景的图标星。请告诉我如何实现这一点。

我尝试过使用Button.layer.borderWidthButton.layer.borderColor,但它给了我一个矩形边框。我想要一个星形边框。

【问题讨论】:

    标签: ios swift dynamic uibutton uikit


    【解决方案1】:

    您可以尝试创建一个系统按钮,并根据您的要求更改按钮的色调颜色 确保星形图像仅由星形组成,其余部分是透明的。 然后尝试更改按钮的 tintColor

    这是一张您可以用来测试的图片。

    【讨论】:

    • 我想如果我想在星号中填充颜色,这将起作用。我不想在星星中填充颜色。只有我需要的是星星上的彩色边框层。
    • 这也是我的图像所做的。如果你的星图只有一个中心透明的星,改变色调只会改变星的部分。我会尝试为您创建一个图像,以便您明白我的意思..
    • 请分享图片。我会检查并通知您。
    • 添加了一张图片,因为背景是白色的,所以不显示,但是这里是网址i.stack.imgur.com/ctQjc.png
    • 很高兴我能帮上忙。只要解决方案可以完成您的工作,请忽略反对意见。
    【解决方案2】:

    你可以使用 UIImage 预定义函数的“RenderingMode”,它对我有用。

      self.imageViewProfile.image = self.imageViewProfile.image?.withRenderingMode(.alwaysTemplate)
      self.imageViewProfile.tintColor = .white   // This is your border color
    

    这两行是用于 UIImageView 的,您可以将相同的用于您的 Button。它会很好用的

    @已更新 对于 UIButton

      let image = UIImage(named: "add")?.withRenderingMode(.alwaysTemplate)
      yourButton.setImage(image, for: .normal)
      yourButton.tintColor = UIColor.red
    

    【讨论】:

      猜你喜欢
      • 2016-07-26
      • 2013-12-26
      • 2013-06-10
      • 2010-10-25
      • 2022-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多