Нарисуйте и заполните прямоугольник в iPhone - PullRequest
3 голосов
/ 21 сентября 2011

У меня есть 4 точки, скажем (x1, y1), (x2, y2), (x2, y3) и (x4, y4).Мне нужно нарисовать прямоугольник с этими точками и залить цветом внутри этого прямоугольника.Кто-нибудь может мне с этим помочь?

Ответы [ 3 ]

24 голосов
/ 21 сентября 2011

Сначала получите текущий графический контекст:

CGContextRef context = UIGraphicsGetCurrentContext();

Далее определите прямоугольник:

CGRect myRect = {x1, y1, x2 - x1, y2 - y1};

Теперь установите цвет заливки, например, красный

CGContextSetRGBFillColor(context, 1.0, 0.0, 0.0, 1.0);

Установите цвет обводки, например, зеленый:

CGContextSetRGBStrokeColor(context, 0.0, 1.0, 0.0, 1.0);

Наконец, заполните прямоугольник:

CGContextFillRect(context, myRect);
2 голосов
/ 21 сентября 2011

Создать объект UIBezierPath. Перейдите к первой точке, затем наберите addLineToPoint: для получения следующих трех точек. Затем позвоните closePath.

Теперь вы можете fill или stroke по этому пути или получить CGPath, если хотите использовать основную графику.

См. здесь для документации.

1 голос
/ 08 декабря 2018

Если вам нужно то же самое для swift 4.2:

  func drawOldStyle() {

        guard let context = UIGraphicsGetCurrentContext() else{
            return
        }


        //Next, define the rectangle:
        let myRect = CGRect(x: 30, y: 100, width: 100, height: 20)

        //Now, set the fill color, e.g red
        context.setFillColor(UIColor.red.cgColor)

        //Set the stroke color, e.g. green:
        context.setFillColor(UIColor.green.cgColor)

        //Finally, fill the rectangle:
        context.fill( myRect)

        // AND Stroke:
        context.stroke(myRect)

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