【发布时间】:2023-03-16 14:31:01
【问题描述】:
我正在尝试在 tableview 顶部添加一个圆形的 tableview 标题。它的顶部在图像下方:
所以我的想法是绘制一个形状视图并将此视图添加为标题。 但从我看到的解决方案来看,我所能做的就是这种形状:
我的问题是:如何在没有额外高度的情况下拥有这种观点?所以角落下面没有高度。 任何其他实现设计的方式也不错。
我的代码:
import UIKit
import PlaygroundSupport
let containerView = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 500))
containerView.backgroundColor = .white
PlaygroundPage.current.liveView = containerView
let headerView = UIView()
let frame2 = CGRect(x: 0, y: 190, width: 300, height: 40)
headerView.clipsToBounds = true
headerView.backgroundColor = .red
headerView.frame = frame2
headerView.roundCorners([.topLeft, .topRight], radius: 40)
containerView.addSubview(headerView)
extension UIView {
func roundCorners(_ corners: UIRectCorner, radius: CGFloat) {
let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
let mask = CAShapeLayer()
mask.path = path.cgPath
self.layer.mask = mask
}
}
【问题讨论】:
标签: swift uitableview header uibezierpath rounded-corners