Ich möchte einen Kreis in UITableViewCell zeichnen.Zeichnungskreis in UIView Rahmen
Um die Positionierung zu vereinfachen, habe ich entschieden, UIView mithilfe des Schnittstellen-Generators zu platzieren, Beschränkungen festzulegen und dann den Kreis aus dem Code innerhalb dieser UIView zu zeichnen.
Dies ist, wie es aussehen angenommen hat:
Allerdings hatte ich ein Problem mit dem Zeichnen des Kreises in der Mitte des Platzes Ansicht. Ich habe diese Lösung gefunden, aber für mich sieht es eher wie eine Umgehung aus. Innerhalb
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 ist im Grunde die UIView, dass der Bezugspunkt für die Zeichnung Kreis sein soll.
Meine Frage ist:
Warum verwenden Sie nicht nur center.x und center.y, warum habe ich Wert von Zentrum und Ursprung subtrahieren die mittleren Koordinate zu bekommen?
machen Wenn Sie nur einen Kreis Ansicht wollen, müssen Sie versuchen, mit 'cornerRadious' mit' UIView' –
Ja, das ist ein anderer Ansatz, meine Frage ist eher Neugier, warum musste ich Zentrum und Herkunft subtrahieren, um das Zentrum zu bekommen? – DCDC
@DCDC, das heißt, wenn der Code zur Laufzeit ausgeführt wird, werden die Ansichten am Ursprung der Zelle (Superview) initialisiert. Sie werden erst nach dem Kompilieren an den angegebenen Koordinaten gezeichnet. Siehe meine Antwort für einen saubereren Ansatz. oder Sie müssen die Werte des Zentrums von pageBadgeView im Arccenter fest codieren, das funktioniert. –