ios - 如何创建一个圆形的 UIImageView

标签 ios swift 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
  }

}

最佳答案

覆盖这个函数。

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

关于ios - 如何创建一个圆形的 UIImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55529637/

相关文章:

ios - '初始化(contentsOfURL :)' is unavailable: APIs deprecated as of iOS 7 and earlier are unavailable in Swift

ios - 顶部的 UITableView 可见行

swift - 如何实现 GameCenter 排行榜?

ios - 使用编码协议(protocol)解析 JSON nil 值

iphone - 有没有办法分析 UIImage 的像素?

ios - 'imgView' 的本地声明隐藏实例变量(应用程序崩溃)

ios - 核心蓝牙状态保存和恢复不工作,无法将应用程序重新启动到后台

ios - GCD 信号量不等待(Swift)

ios - 点击时 UIImageView 图像更改延迟

objective-c - 触摸 ImageView 到另一个 ViewController