首页 > 解决方案 > 如何创建圆形 UIImageView

问题描述

我在创建循环时遇到问题UIImageView。如果我要手动设置corderRadius一个值,例如。50,它会有圆角。但是当我尝试将其设置为框架高度或宽度(frame.width / 2frame.height / 2)的一半时,它不起作用。不知何故,框架是(0, 0, 0, 0)我尝试打印它的时候。

这是我的代码,

import UIKit

class TestIconController : UIViewController {

let icon: UIImageView = {
    let imageView = UIImageView()
    imageView.layer.cornerRadius = imageView.frame.width / 2
    imageView.clipsToBounds = true
    imageView.layer.masksToBounds = true
    imageView.backgroundColor = .red
    imageView.translatesAutoresizingMaskIntoConstraints = false
    return imageView
}()

override func viewDidLoad() {
    super.viewDidLoad()
    loadLogo()
}

func loadLogo() {
    view.addSubview(icon)

    // Constraints
    icon.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
    icon.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
    icon.heightAnchor.constraint(equalToConstant: 200).isActive = true
    icon.widthAnchor.constraint(equalToConstant: 200).isActive = true
  }

}

标签: iosswiftuiimageview

解决方案


覆盖这个函数。

override func viewDidLayoutSubviews() {
        icon.layer.cornerRadius = icon.bounds.size.width / 2
        icon.clipsToBounds = true
        icon.layer.masksToBounds = true
    }

推荐阅读