即使在像 iPad 这样的大屏幕上,当此视图等于 superView 的高度和宽度时,如何使任何视图呈球形
How Can I make any View Rounded In Ball Shape Even In Big Screens Like iPad when this view equal height , width to it's superView
问题
如何使用 swift[= 使用(按钮,图像....视图)与超级视图相等的宽度和高度约束时,如何使按钮,图像,按钮...视图在大屏幕上呈圆形14=]
我试过的代码
我试过这段代码,它在像 SE 这样的小屏幕上工作正常..直到 8 :
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
roundedObject.layer.cornerRadius = roundedObject.frame.width / 2
roundedObject.clipsToBounds = true
}
the shape of the different sizes screens
我的对象约束:
screen1 screen2 screen3
可能您在 viewDidLoad
方法中执行此操作,其中帧尚未获得最终值(最初它们从实例化它们的情节提要中获取值。因此,如果在情节提要预览中大小是 f.e.300x300,在 viewDidLoad 中它也将是 300x300).
因此,要么在 viewDidLayoutSubviews
中执行此操作,要么创建一个子类并在 layoutSubviews 中执行此操作。
class RoundedButton: UIButton {
override func layoutSubviews() {
super.layoutSubviews()
layer.corderRadius = bounds.width / 2
layer.masksToBounds = true
}
}
问题出在你的约束上
像这样一起使用比例宽度和比例高度约束不会得到正方形,因为不同的设备会有不同的高度和宽度
我的建议是只使用一个比例宽度或比例高度(你想要哪个)并使用宽高比约束1:1 在 roundedObject
问题
如何使用 swift[= 使用(按钮,图像....视图)与超级视图相等的宽度和高度约束时,如何使按钮,图像,按钮...视图在大屏幕上呈圆形14=]
我试过的代码
我试过这段代码,它在像 SE 这样的小屏幕上工作正常..直到 8 :
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
roundedObject.layer.cornerRadius = roundedObject.frame.width / 2
roundedObject.clipsToBounds = true
}
the shape of the different sizes screens
我的对象约束: screen1 screen2 screen3
可能您在 viewDidLoad
方法中执行此操作,其中帧尚未获得最终值(最初它们从实例化它们的情节提要中获取值。因此,如果在情节提要预览中大小是 f.e.300x300,在 viewDidLoad 中它也将是 300x300).
因此,要么在 viewDidLayoutSubviews
中执行此操作,要么创建一个子类并在 layoutSubviews 中执行此操作。
class RoundedButton: UIButton {
override func layoutSubviews() {
super.layoutSubviews()
layer.corderRadius = bounds.width / 2
layer.masksToBounds = true
}
}
问题出在你的约束上
像这样一起使用比例宽度和比例高度约束不会得到正方形,因为不同的设备会有不同的高度和宽度
我的建议是只使用一个比例宽度或比例高度(你想要哪个)并使用宽高比约束1:1 在 roundedObject