Ho un'istanza di UIBezierPath
e voglio cambiare il colore del tratto in qualcosa di diverso dal nero. Qualcuno sa come farlo in Swift?Come cambiare il colore di un UIBezierPath in Swift?
11
A
risposta
27
Con Swift 3, UIColor
ha un metodo setStroke()
. setStroke()
ha la seguente dichiarazione:
func setStroke()
Imposta il colore delle operazioni ictus successivi al colore che il ricevitore rappresenta.
Pertanto, è possibile utilizzare setStroke()
come questo:
strokeColor.setStroke() // where strokeColor is a `UIColor` instance
Il codice parco giochi sotto mostra come utilizzare setStroke()
fianco UIBezierPath
al fine di disegnare un cerchio con un colore di riempimento verde e una luce colore tratto grigio all'interno di una sottoclasse UIView
:
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
Supponiamo che tu voglia usare il colore rosso invece per accarezzare un rettangolo arrotondato; Questo è come si fa a Swift 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
La seconda e ultime righe del codice di cui sopra sono importanti a rispondere alle sue question.I sperano questa risposta è utile.
Problemi correlati
- 1. Come riempire il colore all'interno di UIBezierPath?
- 2. Swift cambiare colore di testo utilizzando NSMutableAttributedStrings
- 3. come cambiare il colore di un QGraphicsTextItem
- 4. UIBezierPath con sfumatura di colore
- 5. Come cambiare il colore di un JSeparator?
- 6. Cambiare il colore di alcuni pixel in un UIImage
- 7. Rappresenta CIRectangleFeature con UIBezierPath - Swift
- 8. Come cambiare il colore di un pulsante in Android Studio
- 9. Come cambiare tintColor di UIBarButtonItem in Swift?
- 10. Utilizzo di UIBezierPath: byRoundingCorners: con Swift 2 e Swift 3
- 11. Come cambiare il colore del bordo inferiore di UINavigationBar?
- 12. Come cambiare il colore di UITextview UIDataDetectorTypeLink?
- 13. xterm: come cambiare il colore di sfondo?
- 14. Come cambiare il colore di sfondo FAB
- 15. Come cambiare il colore di sfondo di un NSPopupButton?
- 16. Come cambiare il colore di sfondo di un controllo TreeView
- 17. Come posso cambiare il colore dell'intestazione in un xyplot?
- 18. Come cambiare il colore di sfondo su un pannello Java?
- 19. Come animare un UIBezierPath
- 20. Come cambiare il colore della cella di un jquery datepicker
- 21. Come cambiare il colore del testo di un JButton
- 22. Come cambiare il colore di un WPF `<Separator />`?
- 23. Come posso cambiare il colore di un UITextField clearButton?
- 24. Come cambiare il colore di sfondo attorno a un DialogFragment?
- 25. Swift: UIBezierPath Stroke Animation from Center
- 26. Cambiare il colore di sfondo della cella in UICollectionView in Swift
- 27. Cambiare il colore di un testo in una JLabel
- 28. Impossibile cambiare il colore di un TPanel in delphi
- 29. Come cambiare il colore delle maniglie EditText?
- 30. Come cambiare il colore della cella jqGrid?
La risposta di POB è utile qui, ma è importante capire che un percorso di Bézier non ha colore. È una descrizione di una curva. Solo le penne hanno il colore e la risposta del POB si basa sull'impostazione del colore della penna. –