代码之家  ›  专栏  ›  技术社区  ›  bitops

在我的UIButton中添加一个圆

  •  -1
  • bitops  · 技术社区  · 7 年前

    我有一个我认为很简单的问题。我有一个 UIButton 这是一个图像-也就是说,我把 UIImage imageView 按钮的属性。

    现在看起来是这样的:

    enter image description here

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

    我试过设置 borderColor borderWidth 图像视图 但它绘制的边界是围绕视图的“长方体”的,因此看起来很难看。

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

    有一件事可能需要注意:心脏一开始是白色的,当有人触摸它时,它就会变成红色。我用它来实现一个“收藏夹”功能。我切换颜色的方式是使用以下代码:

    func setFavoriteState(_ isFavorite: Bool) {
      let favoriteColor : UIColor = isFavorite ? .red : .white
      favoriteButton.imageView?.tintColor = favoriteColor
    }
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   thedansaps    6 年前

    最好的方法是有两个单独的图像,一个用于最喜欢的状态,另一个用于最不喜欢的状态。然后,您可以检查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)
          }
        }