Нарисуйте пунктирные линии с помощью кварца на iPhone

StackOverflow https://stackoverflow.com/questions/3132847

Вопрос

Я разрабатываю приложение, в котором мне нужно рисовать пунктирные линии между парой точек. Я старался

CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound)
CGContextSetLineDash(UIGraphicsGetCurrentContext(), 0, lengths, LENGTH_OF_ARRAY)

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

Это было полезно?

Решение

CGContextRef context = UIGraphicsGetCurrentContext();
CGFloat lengths[2];
lengths[0] = 0;
lengths[1] = dotRadius * 2;
CGContextSetLineCap(context, kCGLineCapRound);
CGContextSetLineWidth(context, dotRadius);
CGContextSetLineDash(context, 0.0f, lengths, 2);

// CGContextAddEllipseInRect(context, self.bounds);

Этот код должен работать правильно.

Другие советы

Пожалуйста, смотрите следующую замечательную страницу о ролях линейных свойств!https://horseshoe7.wordpress.com/2014/07/16/core-graphics-line-lawing-xplained/

Согласно вышеуказанной странице, вот код для линии «точка», как (...,,,,)

// should
CGContextSetLineCap(context, kCGLineCapRound);

// please see the role of line properties why the first should be 0 and the second should be the doulbe of the given line width
CGFloat dash[] = {0, lineWidth*2};

// the second value (0) means the span between sets of dot patterns defined by dash array
CGContextSetLineDash(context, 0, dash, 2);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top