如何在圆形中设置 UIImageView Swift 5
How to Set UIImageView in circle Swift 5
此代码仅适用于固定高度和宽度。使用乘法器时,UIImageView 的圆角如何实现?
这里是圈出我的ImageView的代码。宽度和高度为 300。
class MusicViewController: UIViewController {
@IBOutlet weak var imgAlbum: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
imgAlbum.layer.borderWidth = 1
imgAlbum.layer.masksToBounds = false
imgAlbum.layer.borderColor = UIColor.black.cgColor
imgAlbum.layer.cornerRadius = imgAlbum.frame.height/2
imgAlbum.clipsToBounds = true
}
}
如果我将高度和宽度更改为乘数之类的。现在,高度 0.5 和宽度 0.8 的乘数。
(与 SuperView 成比例的高度和宽度)
像这样一起使用比例宽度和比例高度约束不会得到正方形,在不同的设备上它会有不同的高度和宽度
我的建议是只使用一个比例宽度或比例高度(你想要哪个)并使用宽高比约束1:1 在视图上
正如@RajaKishan 和@aiwiguna 所说,您无法获得同时具有比例高度和宽度约束的正方形图像,因为这样您就无法获得具有不同高度和宽度的圆形。
您可以设置宽度或高度与 superview
成比例并将 纵横比设置为 1:1 然后您可以更改乘数并正确获取圆.您可以检查附加图像的限制
然后在 viewDidLayoutSubviews()
中设置 cornerRadius
,而不是在 viewDidLoad()
中。 (viewDidLoad()
在布局约束改变视图高度之前被调用,并且只调用一次。viewDidLayoutSubviews()
在视图的几何形状发生变化时被调用,因此您应该在那里调用任何布局逻辑。
override func viewDidLayoutSubviews() {
self.yourImageView.layer.cornerRadius = self.yourImageView.bounds.height/2
self.yourImageView.clipsToBounds = true
}
此代码仅适用于固定高度和宽度。使用乘法器时,UIImageView 的圆角如何实现?
这里是圈出我的ImageView的代码。宽度和高度为 300。
class MusicViewController: UIViewController {
@IBOutlet weak var imgAlbum: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
imgAlbum.layer.borderWidth = 1
imgAlbum.layer.masksToBounds = false
imgAlbum.layer.borderColor = UIColor.black.cgColor
imgAlbum.layer.cornerRadius = imgAlbum.frame.height/2
imgAlbum.clipsToBounds = true
}
}
如果我将高度和宽度更改为乘数之类的。现在,高度 0.5 和宽度 0.8 的乘数。 (与 SuperView 成比例的高度和宽度)
像这样一起使用比例宽度和比例高度约束不会得到正方形,在不同的设备上它会有不同的高度和宽度
我的建议是只使用一个比例宽度或比例高度(你想要哪个)并使用宽高比约束1:1 在视图上
正如@RajaKishan 和@aiwiguna 所说,您无法获得同时具有比例高度和宽度约束的正方形图像,因为这样您就无法获得具有不同高度和宽度的圆形。
您可以设置宽度或高度与 superview
成比例并将 纵横比设置为 1:1 然后您可以更改乘数并正确获取圆.您可以检查附加图像的限制
然后在 viewDidLayoutSubviews()
中设置 cornerRadius
,而不是在 viewDidLoad()
中。 (viewDidLoad()
在布局约束改变视图高度之前被调用,并且只调用一次。viewDidLayoutSubviews()
在视图的几何形状发生变化时被调用,因此您应该在那里调用任何布局逻辑。
override func viewDidLayoutSubviews() {
self.yourImageView.layer.cornerRadius = self.yourImageView.bounds.height/2
self.yourImageView.clipsToBounds = true
}