Как нарисовать угловые индикаторы, такие как ios5 в UIView? - PullRequest
1 голос
/ 21 декабря 2011

Я не знаю, как рисовать индикаторы захвата угла в методе drawRect. Это мой код:

- (void)drawRect:(CGRect)rect{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetStrokeColorWithColor(context, [UIColor whiteColor].CGColor);
CGContextSetLineWidth(context, 0.8f);

CGFloat colX1 = CGRectGetMaxX(rect)/3.0;
CGFloat colX2 = 2*colX1;
CGFloat rowY1 = CGRectGetMaxY(rect)/3.0;
CGFloat rowY2 = 2*rowY1;

CGContextBeginPath(context);
CGContextMoveToPoint(context, colX1, CGRectGetMinY(rect));  
CGContextAddLineToPoint(context, colX1, CGRectGetMaxY(rect));

CGContextMoveToPoint(context, colX2, CGRectGetMinY(rect));
CGContextAddLineToPoint(context, colX2, CGRectGetMaxY(rect));

CGContextMoveToPoint(context, CGRectGetMinX(rect),rowY1);
CGContextAddLineToPoint(context, CGRectGetMaxX(rect),rowY1);

CGContextMoveToPoint(context, CGRectGetMinX(rect),rowY2);
CGContextAddLineToPoint(context,CGRectGetMaxX(rect),rowY2);

CGContextStrokePath(context);}

и в методе init:

 CATiledLayer *tiledLayer = (CATiledLayer *)[self layer];
    tiledLayer.levelsOfDetail = 4;
    self.layer.borderColor = [UIColor whiteColor].CGColor;
    self.layer.borderWidth = 1.5;

мой снимок экрана:myCropView

Я хочу знать, как нарисовать мой взгляд следующим образом: enter image description here

Я действительно хочу знать код для рисования индикаторов углового захвата.

Заранее спасибо!

Ответы [ 2 ]

3 голосов
/ 21 декабря 2011

Углы - это всего лишь 8 дополнительных линий, нарисованных только снаружи окна, которое вы рисуете.Немного вставьте свою коробку и нарисуйте их по углам рамки.В этом случае вам нужно нарисовать внешнюю рамку, а не использовать borderWidth.Но это просто больше CGContextMoveToPoint / CGContextAddLineToPoint звонков.Вы, кажется, понимаете все инструменты, которые вам уже нужны.

РЕДАКТИРОВАТЬ Кстати, если вы внимательно посмотрите на фотографию, которую вы разместили, вы заметите, что граница на самом деле состоит из обоих черныхи белые пиксели.Возможно, они нарисовали белую рамку шириной 2, а затем вернулись и нарисовали 4 черные линии по краям.Это может быть немного легче нарисовать.

0 голосов
/ 21 декабря 2011

Вы можете нарисовать этот вид одним трюком - создайте одно изображение, похожее на ваш второй снимок экрана, и создайте один слой с этим изображением и нанесите его.

Этот простой, как я думаю.

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