Ich habe eine Instanz von UIBezierPath
und ich möchte die Farbe des Strichs zu etwas anderem als schwarz ändern. Weiß jemand, wie man das in Swift macht?Wie ändert man die Farbe eines UIBezierPath in Swift?
11
A
Antwort
27
Mit Swift 3 hat UIColor
eine setStroke()
Methode. setStroke()
hat die folgende Erklärung ab:
func setStroke()
Legt die Farbe der nachfolgenden Hub-Operationen auf die Farbe, die der Empfänger darstellt.
Daher können Sie setStroke()
wie folgt verwenden:
strokeColor.setStroke() // where strokeColor is a `UIColor` instance
Kreativer Code unten zeigt, wie setStroke()
neben UIBezierPath
verwenden, um einen Kreis mit einem grünen Füllfarbe und ein Licht zu zeichnen graue Strichfarbe innerhalb einer UIView
Unterklasse:
import UIKit
import PlaygroundSupport
class MyView: UIView {
override func draw(_ rect: CGRect) {
// UIBezierPath
let newRect = CGRect(
x: bounds.minX + ((bounds.width - 79) * 0.5 + 0.5).rounded(.down),
y: bounds.minY + ((bounds.height - 79) * 0.5 + 0.5).rounded(.down),
width: 79,
height: 79
)
let ovalPath = UIBezierPath(ovalIn: newRect)
// Fill
UIColor.green.setFill()
ovalPath.fill()
// Stroke
UIColor.lightGray.setStroke()
ovalPath.lineWidth = 5
ovalPath.stroke()
}
}
let myView = MyView(frame: CGRect(x: 0, y: 0, width: 200, height: 300))
PlaygroundPage.current.liveView = myView
1
Nehmen wir an, Sie möchten stattdessen die Farbe Rot verwenden, um ein abgerundetes Rechteck zu streichen. Dies ist, wie Sie es in Swift do 3:
// Drawing the border of the rounded rectangle:
let redColor = UIColor.red
redColor.setStroke() // Stroke subsequent views with a red color
let roundedRectagle = CGRect(x: 0,y: 0, width: 90,height: 20)
let rectangleBorderPath = UIBezierPath(roundedRect: roundedRectangle,cornerRadius: 5)
roundedRectangle.borderWidth = 1
roundedRectangle.stroke() // Apply the red color stroke on this view
Die zweite und letzte Zeile des obigen Codes sind wichtig, um Ihre question.I bei der Beantwortung hoffen, dass diese Antwort hilfreich.
Verwandte Themen
- 1. Wie ändert man die Farbe eines JSeparators?
- 2. UIBezierPath in Swift archivieren
- 3. jqMath: Wie ändert man die Farbe eines Ausdrucks?
- 4. Wie ändert man die Farbe eines WPF `<Separator />`?
- 5. Wie ändert man die Farbe des Etikettentextes?
- 6. Wie ändert man die Farbe im Optionsmenü?
- 7. Wie ändert man die Schriftfarbe eines Hyperlinks?
- 8. Wie fülle ich Farbe in UIBezierPath?
- 9. Wie ändert man die Farbe in einem glänzenden Dashboard?
- 10. Wie ändert man die UIImageView-Farbe in der TableView-Zelle in Swift dynamisch?
- 11. Wie ändert man die Farbe des Textes in javafx TextField?
- 12. Wie ändert man die Transparenz einer Farbe in C#
- 13. Wie ändert man die Farbe des Streudiagramms in ggplot2?
- 14. Wie ändert man die Farbe der Scheibe in Javafx?
- 15. Wie ändert man die graue Farbe von uitabbaritem in uitabbarcontroller?
- 16. Wie ändert man die Farbe des Textcursors in Tkinter?
- 17. Wie ändert man die innere Farbe von Glyphicons in Bootstrap?
- 18. Wie ändert man die Farbe einer Eigenschaft in CMFCPropertyGridCtrl
- 19. Wie ändert man die Farbe des Daumens in der Suchleiste?
- 20. Wie ändert man die Farbe der Konsole in erhabenen Text?
- 21. Wie ändert man die Farbe der Linien in ggplot
- 22. Wie ändert man die Farbe von Donut-Chart in Highchart?
- 23. Wie ändert man die Farbe der Zelle in javafx tableview?
- 24. iOS Swift - Wie ändert man die Hintergrundfarbe der Tabellenansicht?
- 25. Wie ändert man die Farbe von Text in einer Tabellenansicht swift?
- 26. Wie ändert man die Farbe für Tab-Leiste nicht ausgewähltes Symbol in swift?
- 27. Wie man eine Farbe in swift
- 28. Wie man Knopfbild in swift ändert?
- 29. Wie ändert man UIPicker Farbe? iPhone
- 30. Wie ändert man den Buchstabenabstand in Swift?
POBs Antwort ist hier hilfreich, aber es ist wichtig zu verstehen, dass ein Bézier-Pfad selbst keine Farbe hat. Es ist eine Beschreibung einer Kurve. Nur Stifte haben Farbe, und die Antwort von POB dreht sich nur um die Stiftfarbe. –