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
}()
Run Code Online (Sandbox Code Playgroud)
我的约束是
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),
])
}
Run Code Online (Sandbox Code Playgroud)
然后将layout()添加到viewDidLoad
初始化时,您没有为UIImageView提供框架,因此它.zero用作默认框架。这意味着当您访问时,image.frame.size.width您将获得0值。
我建议的是将您image.layer.cornerRadius = image.frame.size.width / 2转移到viewDidLayoutSubviews您的UIViewController课堂上。
您还可以创建一个自定义类,该子类继承UIImageView并实现相同的逻辑。在override为UIImageView将layoutSubviews。
| 归档时间: |
|
| 查看次数: |
45 次 |
| 最近记录: |