ios - 如何创建圆形 UIImageView
问题描述
我在创建循环时遇到问题UIImageView
。如果我要手动设置corderRadius
一个值,例如。50,它会有圆角。但是当我尝试将其设置为框架高度或宽度(frame.width / 2
或frame.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
}
推荐阅读
- security - 如何审计用户在 K8s 容器内运行的命令
- sql - Hive 在每个组中最受欢迎
- python-3.6 - YUM 包在 repo 中可用,但安装时给出“无包”
- python-3.x - 调用局部变量导致 TypeError: cannot unpack non-iterable NoneType object
- unity3d - 角色没有用脚本改变动画状态
- twitter-bootstrap - 如何提高引导按钮“越过”拉伸的链接?
- visual-studio - 使用 Visual Studio 2017 和 Visual Studio 2019 设置和使用 Specflow、Selenium、Nunit、.NET Core 的步骤
- angular - 如何在组件模板中重用 HTML 块?
- ios - 添加多个单元格时,UICollectionViewCell 未正确对齐
- laravel - Laravel 5.8 419 错误/登录后身份验证用户不可用