在我的UIButton中添加一个封闭的圆圈

时间:2018-04-21 21:04:16

标签: ios uibutton uikit

我认为这是一个简单的问题。我有UIButton这是一张图片 - 也就是说,我已将UIImage放在按钮的imageView属性中。

现在它看起来像这样:

enter image description here

我想要给心脏一个黑色的边框,或者用一个黑色或深灰色圆圈的UIView包围心脏。

我已尝试在borderColor的基础图层上设置borderWidthimageView,但其绘制的边框位于"框"视图,所以它看起来很丑陋。

是否有一种简单/简单的方法可以为我的图像添加边框,或者可以在按钮上添加子视图以便显示一个封闭的圆圈?

有一点可能需要注意:心脏开始呈白色,然后当有人触摸它时,它会变成红色。我用它来实现一个"收藏夹"特征。我切换颜色的方式是使用以下代码:

func setFavoriteState(_ isFavorite: Bool) {
  let favoriteColor : UIColor = isFavorite ? .red : .white
  favoriteButton.imageView?.tintColor = favoriteColor
}

1 个答案:

答案 0 :(得分:1)

这样做的最佳方法是拥有两个单独的图像,一个用于喜欢的状态,另一个用于不喜欢的状态。然后,您可以检查UIButton的当前图像,然后在点击后将其更改为另一个图像,如下例所示:

    @IBAction func buttonTapped(_ sender: Any) {

      if (yourButton.currentImage?.isEqual(UIImage(named: "favorite_icon")))! {
          yourButton.setImage(UIImage(named: "unfavorite_icon"), for: .normal)  
      } else {
        yourButton.setImage(UIImage(named: "favorite_icon"), for: .normal)
      }
    }