圆形图像视图

时间:2016-02-22 06:32:04

标签: ios swift uiimageview nslayoutconstraint

我正在尝试为个人资料照片制作图像视图。 在我放置UiScreen宽度约束之前,它工作正常。

所以这是代码

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var imageView: UIImageView!

@IBOutlet weak var proPicH: NSLayoutConstraint! //Profile Picture Height
@IBOutlet weak var proPicW: NSLayoutConstraint! // Profile Picture Width

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    circleImage()
}

func circleImage() {
    let screenSize = UIScreen.mainScreen().bounds
    let screenWidth = screenSize.width
    let width = screenWidth / 2
    print("ScreenWidth: \(screenWidth)")
    proPicW.constant = width
    proPicH.constant = width

    print("H:\(proPicH.constant)")
    print("W:\(proPicW.constant)") //Here the height and width comes to my expectations

    imageView.layer.cornerRadius = imageView.bounds.width / 2
    imageView.clipsToBounds = true

    print("Height: \(imageView.bounds.height)") // Here the height and width becomes more
}
}

Here is how image comes, I want it to be round

请帮我解决这个问题:

3 个答案:

答案 0 :(得分:1)

在您设置图像视图角半径的时间点,其边界尚未更新以匹配约束。改变这一行

imageView.layer.cornerRadius = imageView.bounds.width / 2

imageView.layer.cornerRadius = width / 2

因此,用于设置约束的相同值也用于角半径。

请注意,如果您更新其他一些代码中的约束,那么您也可以更新以更新角半径以匹配。

答案 1 :(得分:0)

我建议你把

 circleImage()

在viewDidAppears方法

答案 2 :(得分:0)

使用imageView.layer.cornerRadius = imageView.frame.size.width / 2     imageView.layer.maskToBounds =是;