Цвет за моей пользовательской формой заполнен, и я хочу сделать его белым - PullRequest
3 голосов
/ 29 апреля 2020

По сути, на рисунке это видно, но серый фон за оранжевой формой я хочу сделать прозрачным и / или белым (или, если честно, любым цветом). Мне просто интересно, где я могу изменить цвет фона фигуры и каков синтаксис для него. ИЗОБРАЖЕНИЕ

class DemoView: UIView {

    /*
    // Only override draw() if you perform custom drawing.
    // An empty implementation adversely affects performance during animation.
    override func draw(_ rect: CGRect) {
        // Drawing code
    }
    */

    var path: UIBezierPath!

    override init(frame: CGRect) {
        super.init(frame: frame)

        self.backgroundColor = UIColor.darkGray

    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    func createRectangle() {
        path = UIBezierPath()

        path.move(to: CGPoint(x:0.0, y: 0.0))

        path.addLine(to: CGPoint(x: 0.0, y: 300.0))

        //path.addLine(to: CGPoint(x: self.frame.size.width, y: self.frame.size.height))


        //self.frame.size.height
        path.addCurve(to:CGPoint(x: self.frame.size.width, y: 300.0), controlPoint1:  CGPoint(x: self.frame.size.width/2, y: 400), controlPoint2:  CGPoint(x: self.frame.size.width/2, y: 400))

        path.addLine(to: CGPoint(x: self.frame.size.width, y: 0.0))

        path.close()
    }

    override func draw(_ rect: CGRect) {
        self.createRectangle()

        UIColor.orange.setFill()
        path.fill()

        UIColor.purple.setStroke()
        path.stroke()


    }
}

в контроллере вида ниже

let height: CGFloat = 400.0

               let demoView = DemoView(frame: CGRect(x: 0,
                                                     y: self.view.frame.size.height/2 - height/2,
                                                     width: self.view.frame.size.width,
                                                     height: height))

               self.view.addSubview(demoView)

1 Ответ

3 голосов
/ 29 апреля 2020

Вы можете изменить его, изменив цвет фона демонстрационного представления

let demoView = DemoView(frame: CGRect(x: 0,
                                            y: self.view.frame.size.height/2 - height/2,
                                            width: self.view.frame.size.width,
                                            height: height))
      demoView.backgroundColor = .green
      self.view.addSubview(demoView)

Также вы можете изменить его в своем методе DemoView init

  class DemoView: UIView {

    var path: UIBezierPath!

    override init(frame: CGRect) {
        super.init(frame: frame)

       // self.backgroundColor = UIColor.darkGray
        self.backgroundColor = // Any color you want or clear color
    }

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...