Создать сложный CGRect
У меня есть вид с границей 10 пикселей, нарисованных на методе. Мне нужно обновить цвет границы, и я использую [self setNeedsDisplay]
чтобы сделать его перерисовать вид. Поскольку мне нужно обновить только границу, я хочу использовать: [self setNeedsDisplayInRect:rect]
поэтому он будет рисовать только границу.
Как я могу получить прямоугольник только границы без других областей представления?
Спасибо Шани
2 ответа
Вы не можете, потому что 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;
Вы можете получить четыре CGRect вокруг каждой части границы (сверху, справа, снизу и слева) и вызывать метод четыре раза для каждого из них.