Dies ist mein erstes Mal, dass ich Probleme mit DrawRect habe. Ich habe eine einfache UIView-Unterklasse mit einem zu füllenden Pfad. Alles ist gut. Der Pfad wird richtig ausgefüllt, aber der Hintergrund bleibt schwarz, egal was passiert. Was soll ich machen? Mein Code ist unten aufgeführt:Cant Change UIView Hintergrundfarbe von Schwarz
var color: UIColor = UIColor.red {didSet{setNeedsDisplay()}}
private var spaceshipBezierPath: UIBezierPath{
let path = UIBezierPath()
let roomFromTop: CGFloat = 10
let roomFromCenter: CGFloat = 7
path.move(to: CGPoint(x: bounds.minX, y: bounds.maxY))
path.addLine(to: CGPoint(x: bounds.minX, y: bounds.minY+roomFromTop))
path.addLine(to: CGPoint(x: bounds.midX-roomFromCenter, y: bounds.minY+roomFromTop))
path.addLine(to: CGPoint(x: bounds.midX-roomFromCenter, y: bounds.minY))
path.addLine(to: CGPoint(x: bounds.midX+roomFromCenter, y: bounds.minY))
path.addLine(to: CGPoint(x: bounds.midX+roomFromCenter, y: bounds.minY+roomFromTop))
path.addLine(to: CGPoint(x: bounds.maxX, y: bounds.minY+roomFromTop))
path.addLine(to: CGPoint(x: bounds.maxX, y: bounds.maxY))
path.addLine(to: CGPoint(x: bounds.minX, y: bounds.maxY))
return path
}
override func draw(_ rect: CGRect) {
color.setFill()
spaceshipBezierPath.fill()
}
Hier ist, was die Ansicht wie folgt aussieht:
Ich bin nicht sicher, aber vielleicht ein 'path.close()' vor Rückkehr Pfad in spaceshipBezierPath – Grifas
Nope hinzufügen. Versuchte das, aber hat nicht funktioniert. Danke für die Hilfe obwohl –
@ Nikhi Sridhar, verwende ich Ihren Code, um das Rect zu zeichnen, aber erhalten Sie die Farbe, Ihr Rot ist blau in meiner Ansicht, Ihr Schwarzes ist weiß. und welchen Effekt willst du bekommen? – aircraft