gpt4 book ai didi

swift - 如何在 UIView 中为表格 View 标题部分绘制自定义形状?

转载 作者:行者123 更新时间:2023-12-04 09:02:37 27 4
gpt4 key购买 nike

我正在尝试在 headerView 中绘制自定义形状对于我 UITableviewController 中的给定部分.这是我的代码:

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
10
}

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let view = UIView()
view.backgroundColor = .white

let rect = view.bounds

let bezier = UIBezierPath()
bezier.move(to: CGPoint(x: rect.minX, y: rect.midY))
bezier.addLine(to: CGPoint(x: rect.maxX, y: rect.midY))
bezier.stroke()

let shape = CAShapeLayer()
shape.path = bezier.cgPath
shape.strokeColor = UIColor.red.cgColor

view.layer.addSublayer(shape)
return view
}
UIView正确呈现。我知道这一点是因为我可以看到标题部分的颜色从默认颜色变为白色。但是,我在 CAShapeLayer中所做的绘图没有被渲染。我在想层实例化中可能缺少配置?

最佳答案

这解决了我的问题:

   class ViewWithLine : UIView {

override func draw(_ rect: CGRect) {
let y: CGFloat = rect.midY
let x1: CGFloat = rect.minX + 5
let x2: CGFloat = rect.maxX - 5

UIColor.lightGray.setStroke()

let b = UIBezierPath()
b.lineWidth = 0.5
b.move(to: CGPoint(x: x1, y: y))
b.addLine(to: CGPoint(x: x2, y: y))
b.stroke()
}
}

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
5
}

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let view = ViewWithLine()
view.backgroundColor = .white
return view
}

关于swift - 如何在 UIView 中为表格 View 标题部分绘制自定义形状?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63532505/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com