角半径错误 - 圆形图像看起来像一只眼睛

时间:2017-02-08 11:58:31

标签: ios swift autolayout

我正在尝试在Swift中制作一个圆形图像,我已经四处搜索并观看了一些YouTube视频。提出的解决方案非常简单,但是当我使用它们时,我得到的图像形成为眼睛而不是圆形,下面是我的视图控制器和UI的图片

var experimentIdentifier: String = ""


@IBOutlet weak var foregroundImage: UIImageView!
override func viewDidLoad() {
    super.viewDidLoad()

    foregroundImage.layer.cornerRadius = (foregroundImage.frame.size.width) / 2
    foregroundImage.layer.masksToBounds = true
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

Supposed to be a circular image

4 个答案:

答案 0 :(得分:2)

这是因为您的图片不是正方形。

在操作中查看此问题:

  

将图像设置为宽度:高度=故事板中的2:1矩形

enter image description here

  

然后运行,图像看起来像

enter image description here

  

但是如果图像是方形的,就像在故事板中那样

enter image description here

  

点击运行,它就像

enter image description here

享受编码!

答案 1 :(得分:0)

试试这个,

        let profileImageView = UIImageView()
        profileImageView.frame = CGRectMake(150, 150, 60, 60)
        profileImageView.layer.borderWidth = 1
        profileImageView.layer.borderColor = UIColor.grayColor().CGColor
        profileImageView.backgroundColor = UIColor.yellowColor()
        profileImageView.layer.cornerRadius = 60/2


        let image = UIImage(named: "yourImageName")
        profileImageView.layer.cornerRadius = profileImageView.frame.size.height/2
        profileImageView.clipsToBounds = true

答案 2 :(得分:0)

我猜您的图像不是正方形。要使其成为正方形,您必须确保图像的高度和宽度相等,然后还要添加这两个属性

foregroundImage.layer.cornerRadius = 0.5 * your image height 
foregroundImage.layer.masksToBounds = true
foregroundImage.clipsToBounds = true

我希望这会有所帮助

答案 3 :(得分:0)

确保图像是正方形,然后添加此代码

 foregroundImage.layer.cornerRadius = side/2
     foregroundImage.layer.masksToBounds = true