Ios UIView不显示圆形
对于制作圆形Ios UIView不显示圆形,ios,swift,rounded-corners,Ios,Swift,Rounded Corners,对于制作圆形ui视图我使用cornerRadius属性 我有一个尺寸为79*158的UIView redView.layer.cornerRadius = redView.frame.size.height/2 redView.layer.masksToBounds = true 它显示省略号而不是圆: 是否有任何解决方法,或者它是否仅适用于方形(例如UIView(100*100)) 如果它动态调整大小,我可以。不能。 尝试将视图调整为正方形:79*79或158*158 并设置: redVi
ui视图
我使用cornerRadius
属性
我有一个尺寸为79*158的UIView
redView.layer.cornerRadius = redView.frame.size.height/2
redView.layer.masksToBounds = true
它显示省略号而不是圆:
是否有任何解决方法,或者它是否仅适用于方形(例如UIView(100*100))
如果它动态调整大小,我可以。不能。尝试将视图调整为正方形:79*79或158*158 并设置:
redView.layer.cornerRadius = redView.frame.size.height/2
用这个
func makeCircle (view: UIView) {
view.clipsToBounds = true
let height = view.frame.size.height
let width = view.frame.size.width
let newHeight = min(height, width) // use "max" if you want big circle
var rectFrame = view.frame
rectFrame.size.height = newHeight
rectFrame.size.width = newHeight
view.frame = rectFrame
view.layer.cornerRadius = newHeight/2
}
这样使用:
@IBOutlet var rectView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
makeCircle(view: rectView)
}
您有一个尺寸为79*158的UIView。所以这是错误的。您应该具有完全相同的高度和宽度,以便将视图精确舍入为圆形 例如
redView.frame.size.height = 79.0
redView.frame.size.width = 79.0
或
redView.frame.size.height = 158.0
redView.frame.size.width = 158.0
并应用角半径,如:
redView.clipsToBounds = true
redView.layer.cornerRadius = redView.frame.size.height / 2.0
结果:
注意:如果使用自动布局,也要检查约束。确保图幅不会更改。如果使用约束,则更改视图的图幅/边界不是一个好主意。相反,您应该执行以下操作
UIViewController
中,则在viewDidLayoutSubviews
方法中设置cornerRadius
UIView
的子类,则在layoutSubviews
方法中设置corneradius
只有乡绅的视角才能构成一个完美的圆圈。例如,如果您的视图大小为(10*10)、(50*50)、(100*100)等,则您的视图将成为完美的squire,否则将不会。使用IBDesignable,您可以在storyboard ox.XIB#simple way 步骤1。子类UIView:
@IBDesignable class RoundedCornerView: UIView {
@IBInspectable var borderWidth:CGFloat = 2 {
didSet {
layer.borderWidth = borderWidth
}
}
@IBInspectable var borderColor:UIColor = UIColor.orangeGradientLight {
didSet {
layer.borderColor = borderColor.cgColor
}
}
override func layoutSubviews() {
super.layoutSubviews()
layer.cornerRadius = frame.height/2
layer.masksToBounds = true
layer.borderColor = borderColor.cgColor
layer.borderWidth = borderWidth
}
}
步骤2。在identity inspector中设置自定义类:
矩形视图如何变成圆形?你需要一些数学知识。要形成一个圆形视图,你必须先将其创建为正方形。我们不能使中心适合吗?或收缩等?如果视图高于宽,请使用
width/2
而不是height/2
。好的!,是否有任何解决方法,如使其中心适合/AspectFit?如果它动态调整大小,我就可以了。