我想在UITableViewCell中畫一個圓圈。在UIView框架內繪製圓圈
爲了使定位更容易,我決定使用界面生成器放置UIView,設置約束,然後從該UIView內的代碼中繪製圓。
不過,我有一個問題,畫圓就在廣場取景當中。我想出了這個解決方案,但對我來說,它看起來更像是解決方法。內部
的tableView(的tableView:UITableView的,的cellForRowAtIndexPath indexPath:NSIndexPath)
let xCoord = cell.pageBadgeView.center.x - cell.pageBadgeView.frame.origin.x
let yCoord = cell.pageBadgeView.center.y - cell.pageBadgeView.frame.origin.y
let circlePath = UIBezierPath(arcCenter: CGPoint(x: xCoord ,y: yCoord), radius: CGFloat(20), startAngle: CGFloat(0), endAngle:CGFloat(M_PI * 2), clockwise: true)
pageBadgeView基本上是被認爲是用於繪製圓的參考點的UIView。
我的問題是:
爲什麼不只是使用center.x和center.y,我爲什麼要中心。減去和起源的值來獲得中點座標?
東西,如果你只是想要一個圈子查看有沒有你'cornerRadious'用'UIView'嘗試 –
是的,這是另一種方法,我的問題更多的是好奇心,爲什麼我必須減少中心和原點才能真正獲得中心? – DCDC
@DCDC,這是因爲當代碼正在執行時,在運行時,視圖在單元格的原點(超級視圖)被初始化。只有在編譯之後,它們纔會在指定的座標系中繪製。看到我的答案更清潔的方法。或者你必須在arccenter中對pageBadgeView中心的值進行硬編碼,這將起作用。 –