Kin*_*ing 0 uiimageview ios swift
我正在尝试创建一个圆形图像,并且已经实现了正确的代码,但是我不知道为什么下面的代码没有四舍五入是我的代码
lazy var profileImage: UIImageView = {
       let image = UIImageView()
        image.translatesAutoresizingMaskIntoConstraints = false
        image.layer.borderColor = UIColor.blue.cgColor
        image.layer.borderWidth = 1.5
        image.image = UIImage(named: "prof.jpg")
        image.contentMode = .scaleAspectFit
        image.layer.cornerRadius = image.frame.size.width / 2
        image.clipsToBounds = true
        return image
    }()
我的约束是
fileprivate func layout() {
        view.addSubview(profileImage)
        NSLayoutConstraint.activate([
        profileImage.centerXAnchor.constraint(equalTo: view.centerXAnchor),
        profileImage.centerYAnchor.constraint(equalTo: view.centerYAnchor),
        profileImage.heightAnchor.constraint(equalToConstant: 200),
        profileImage.widthAnchor.constraint(equalToConstant: 200),
        ])
}
然后将layout()添加到viewDidLoad
初始化时,您没有为UIImageView提供框架,因此它.zero用作默认框架。这意味着当您访问时,image.frame.size.width您将获得0值。
我建议的是将您image.layer.cornerRadius = image.frame.size.width / 2转移到viewDidLayoutSubviews您的UIViewController课堂上。
您还可以创建一个自定义类,该子类继承UIImageView并实现相同的逻辑。在override为UIImageView将layoutSubviews。
| 归档时间: | 
 | 
| 查看次数: | 45 次 | 
| 最近记录: |