Создать сложный CGRect - PullRequest
       33

Создать сложный CGRect

0 голосов
/ 24 марта 2012

У меня есть вид с границей 10 пикселей, нарисованной на методе. Мне нужно обновить цвет границы, и я использую [self setNeedsDisplay], чтобы сделать его перерисованным вид. Поскольку мне нужно обновить только границу, я хочу использовать: [self setNeedsDisplayInRect:rect], поэтому он будет рисовать только границу.

Как я могу получить прямоугольник только границы без других областей вида?

Спасибо Шани

Ответы [ 2 ]

2 голосов
/ 24 марта 2012

Вы не можете, потому что CGRect - это прямоугольник, поэтому это выпуклая форма, в которой не может быть отверстий.

Но вы можете разложить границу на четыре прямоугольника и вызвать [self setNeedsDisplayInRect:rect] четыре раза.

Также, если вы импортируете QuartzCore, вы, вероятно, можете использовать свойство borderColor слоя представления:

#import <QuartzCore/QuartzCore.h>

// ...

view.layer.borderWidth = 10;
view.layer.borderColor = [UIColor redColor].CGColor;

// And to change it later
view.layer.borderColor = [UIColor greenColor].CGColor;
0 голосов
/ 24 марта 2012

Вы можете получить четыре CGRect вокруг каждой части границы (сверху, справа, снизу и слева) и вызывать метод четыре раза для каждого из них.

...