最佳答案
这应该接近你想要的。如果不完全正确,请使用贝塞尔曲线路径点:
@IBDesignable
class MyRoundBottomView: UIView {
override func layoutSubviews() {
super.layoutSubviews()
let y = bounds.size.height - 80.0
let p1 = CGPoint(x: 0.0, y: y)
let p2 = CGPoint(x: bounds.size.width, y: y)
let cp1 = CGPoint(x: p1.x, y: bounds.size.height)
let cp2 = CGPoint(x: bounds.size.width, y: bounds.size.height)
let myBez = UIBezierPath()
myBez.move(to: CGPoint(x: 0.0, y: y))
myBez.addCurve(to: p2, controlPoint1: cp1, controlPoint2: cp2)
myBez.addLine(to: CGPoint(x: bounds.size.width, y: 0.0))
myBez.addLine(to: CGPoint.zero)
myBez.close()
let l = CAShapeLayer()
l.path = myBez.cgPath
layer.mask = l
}
}
它被标记为@IBDesignable
,因此您可以添加UIView
(在 Storyboard中)并将其自定义类分配给MyRoundBottomView
,然后您将在设计时查看它:
关于ios - 我想在 Swift 中的 ScrollView 底部创建 UIView 圆形形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59897279/