我想要在TableView中繪製一個具有5行的里程碑,我在單元格中添加了一個標籤「O」,此處行高爲44,並試圖連接這些圓點 Something像這樣 O ------ O ------ O ------ O ----- O垂直,但我無法弄清楚這裏缺少什麼,請參考以下代碼在桌面視圖中使用BezierPath創建時間軸視圖
class StopslistTableViewCell:UITableViewCell{
@IBOutlet weak var milestoneLbl: UILabel!
override func draw(_ rect: CGRect) {
let scrrenX = UIScreen.main.bounds.width - 30
let frametosuperview = milestoneLbl.convert(milestoneLbl!.frame, to: self.superview)
print("dotframetosuperview",frametosuperview)
//print(CGPoint(x: scrrenX, y: previousposY + rect.size.height))
//frametosuperview.origin.y > 40 ? frametosuperview.origin.y - 20 : frametosuperview.origin.y
let path = UIBezierPath()
path.move(to: CGPoint(x: scrrenX, y:frametosuperview.origin.y < 30 ? frametosuperview.origin.y : frametosuperview.origin.y - frametosuperview.height))
print("move to point--->",frametosuperview.origin.y < 30 ? frametosuperview.origin.y : frametosuperview.origin.y - frametosuperview.height)
path.addLine(to: CGPoint(x: scrrenX, y: frametosuperview.origin.y < 30 ? frametosuperview.height + 24 : (frametosuperview.origin.y + 24)))
print("add line to point--->",CGPoint(x: scrrenX, y: frametosuperview.origin.y < 30 ? frametosuperview.height + 24 : (frametosuperview.origin.y + 24)))
path.lineWidth = 5
UIColor.red.setStroke()
path.stroke()
setNeedsDisplay()
}
調試輸出
dotframetosuperview (560.0, 20.0, 20.0, 20.0)
move to point---> 20.0
add line to point---> (290.0, 44.0)
dotframetosuperview (560.0, 64.0, 20.0, 20.0)
move to point---> 44.0
add line to point---> (290.0, 88.0)
dotframetosuperview (560.0, 108.0, 20.0, 20.0)
move to point---> 88.0
add line to point---> (290.0, 132.0)
dotframetosuperview (560.0, 152.0, 20.0, 20.0)
move to point---> 132.0
add line to point---> (290.0, 176.0)
dotframetosuperview (560.0, 196.0, 20.0, 20.0)
move to point---> 176.0
add line to point---> (290.0, 220.0)
我需要像這樣
我無法得到想要的結果,我在這裏錯過了什麼..?
請張貼更多的信息。有什麼問題「我無法獲得理想的結果」?預期的輸出,實際的輸出... – shallowThought
如果你想要更多的信息,複製tableviewcell中的代碼,在xib中獲取一個tableview,拖拽一個單元格,在其上放置一個標籤,將標籤附加到里程碑並運行。 – iSwift