Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在我的UIButton中添加一个封闭圆_Ios_Uibutton_Uikit - Fatal编程技术网

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

Ios 在我的UIButton中添加一个封闭圆,ios,uibutton,uikit,Ios,Uibutton,Uikit,我有一个我认为很简单的问题。我有一个ui按钮它是一个图像-也就是说,我在按钮的imageView属性中放置了一个ui图像 现在看起来是这样的: 我想给心脏一个黑色的边框,或者用一个封闭的UIView来包围心脏,这是一个黑色或深灰色的圆圈 我曾尝试在imageView的底层设置borderColor和borderWidth,但它绘制的边框位于视图的“框”周围,因此看起来非常难看 是否有一种简单/简单的方法可以将边框添加到图像中,或者可以将子视图添加到按钮中,以便显示一个封闭的圆 有一件事可能需要

我有一个我认为很简单的问题。我有一个
ui按钮
它是一个图像-也就是说,我在按钮的
imageView
属性中放置了一个
ui图像

现在看起来是这样的:

我想给心脏一个黑色的边框,或者用一个封闭的
UIView
来包围心脏,这是一个黑色或深灰色的圆圈

我曾尝试在
imageView
的底层设置
borderColor
borderWidth
,但它绘制的边框位于视图的“框”周围,因此看起来非常难看

是否有一种简单/简单的方法可以将边框添加到图像中,或者可以将子视图添加到按钮中,以便显示一个封闭的圆

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

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

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

你为什么不用不同的图像来表达你的心呢??我的意思是你可以有两个心脏图像,一个背景是红色的圆圈,一个背景是黑色的,当你点击心脏时,改变图像。如果你不使用动画,这应该是可行的。我不知道这是最好的方法,但它看起来绝对是最简单的方法!我有点希望能找到一种在心脏周围划出边界的方法。希望这个解决方案对你有用,@bitops。你会接受我的回答吗?我会接受的,因为你很善良,写了一个答案。我有点希望在绘画方面得到一些指导,但公平就是公平。