2017-06-12 3 views
1

Ich ging durch How to curve the top of a UIView Controller in SwiftWie kurvt man den oberen Rand einer UIView mit swift3?

und machte eine Ansicht. Es ist unten angebracht. Ich möchte diese hintere Farbe aus meiner Sicht entfernen. Ich habe eine Übersicht im Storyboard erstellt und dieser Ansicht eine benutzerdefinierte Klasse zugewiesen.

want to remove the black color

meine eigene Klasse ist

class curvedView: UIView { 

override func draw(_ rect: CGRect) { 

    let color = UIColor(rgb: 0x285387) 
    let y:CGFloat = 0 
    // let curveTo:CGFloat = 50 

    let myBezier = UIBezierPath() 
    myBezier.move(to: CGPoint(x: 0, y: y)) 

    myBezier.addQuadCurve(to: CGPoint(x: rect.width, y: y), controlPoint: CGPoint(x: rect.width/2, y: rect.height/3)) 
    myBezier.addLine(to: CGPoint(x: rect.width, y: rect.height)) 
    myBezier.addLine(to: CGPoint(x: 0, y: rect.height)) 
    myBezier.close() 
    let context = UIGraphicsGetCurrentContext() 
    context!.setLineWidth(2.0) 

    color.setFill() 
    myBezier.fill() 
}} 

extension UIColor { 
convenience init(red: Int, green: Int, blue: Int) { 
    assert(red >= 0 && red <= 255, "Invalid red component") 
    assert(green >= 0 && green <= 255, "Invalid green component") 
    assert(blue >= 0 && blue <= 255, "Invalid blue component") 

    self.init(red: CGFloat(red)/255.0, green: CGFloat(green)/255.0, blue: CGFloat(blue)/255.0, alpha: 1.0) 
} 

convenience init(rgb: Int) { 
    self.init(
     red: (rgb >> 16) & 0x28, 
     green: (rgb >> 8) & 0x53, 
     blue: rgb & 0x87 
    ) 
}} 

Antwort

2

einfach Nun Backgroundcolor zu diesem Custom geben.

Like:

class curvedView: UIView { 

    override func layoutSubviews() { 
     self.backgroundColor = .clear 
    } 

    override func draw(_ rect: CGRect) { 
     let color = UIColor(rgb: 0x285387) 
     let y:CGFloat = 0 
     let myBezier = UIBezierPath() 
     myBezier.move(to: CGPoint(x: 0, y: y)) 
     myBezier.addQuadCurve(to: CGPoint(x: rect.width, y: y), controlPoint: CGPoint(x: rect.width/2, y: rect.height/3)) 
     myBezier.addLine(to: CGPoint(x: rect.width, y: rect.height)) 
     myBezier.addLine(to: CGPoint(x: 0, y: rect.height)) 
     myBezier.close() 
     color.setFill() 
     myBezier.fill() 
    } 
} 

oder alternativ ist es besser, dass zu geben, in der Initialisierung:

class curvedView: UIView { 

    override func draw(_ rect: CGRect) { 
     let color = UIColor(rgb: 0x285387) 
     let y:CGFloat = 0 
     let myBezier = UIBezierPath() 
     myBezier.move(to: CGPoint(x: 0, y: y)) 
     myBezier.addQuadCurve(to: CGPoint(x: rect.width, y: y), controlPoint: CGPoint(x: rect.width/2, y: rect.height/3)) 
     myBezier.addLine(to: CGPoint(x: rect.width, y: rect.height)) 
     myBezier.addLine(to: CGPoint(x: 0, y: rect.height)) 
     myBezier.close() 
     color.setFill() 
     myBezier.fill() 

    } 
    override init(frame: CGRect) { 
     super.init(frame: frame) 
     self.backgroundColor = UIColor.clear 
    } 

    required init?(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 
     self.backgroundColor = UIColor.clear 

    } 
} 
+0

Danke ... Sein gearbeitet .. –

+0

WC. Achte darauf, ob es dir hilft. – ankit

Verwandte Themen