Как нарисовать пунктирную прямоугольную рамку на iphone?

Как нарисовать прямоугольник в iphone sdk, используя основную графику

Снимок экрана инструмента кадрирования


person Rahul Vyas    schedule 15.09.2009    source источник


Ответы (3)


Это пять прямоугольников.

Вы создаете CGPath для прямоугольника с пунктирной линией, обводите его, а затем создаете четыре маленьких CGPath для маркеров и обводите их.

person Dave DeLong    schedule 15.09.2009
comment
В качестве альтернативы создайте один CGPath для ручки с отрицательным началом (например, -5, -5, 10, 10), затем используйте матрицу преобразования и графическое состояние, чтобы обвести ее во всех четырех местах. - person Peter Hosey; 15.09.2009

Я бы рекомендовал обойтись без ручек. Они имеют смысл, когда вы используете мышь; с сенсорным экраном не очень.

person NSResponder    schedule 16.09.2009

В частности, если вы посмотрите реальную справочную документацию iPhone для CGPath, вы найдете раздел о CGPathAddRect. После этого вы, вероятно, найдете раздел руководства по 2D на Рисование пути полезно.

CGPathAddRect

Добавляет прямоугольник к изменяемому графическому контуру.

void CGPathAddRect (
   CGMutablePathRef path,
   const CGAffineTransform *m,
   CGRect rect
);

Параметры
путь
Изменяемый путь для изменения.

m
Указатель на матрицу аффинного преобразования или NULL, если преобразование не требуется. Если указано, Quartz применяет преобразование к прямоугольнику перед добавлением его к пути.

rect
Добавляемый прямоугольник.

Обсуждение
Это удобная функция, которая добавляет прямоугольник к пути, используя следующую последовательность операций:

// start at origin
CGPathMoveToPoint (path, m, CGRectGetMinX(rect), CGRectGetMinY(rect));

// add bottom edge
CGPathAddLineToPoint (path, m, CGRectGetMaxX(rect), CGRectGetMinY(rect));

// add right edge
CGPathAddLineToPoint (path, m, CGRectGetMaxX(rect), CGRectGetMaxY(rect);

// add top edge
CGPathAddLineToPoint (path, m, CGRectGetMinX(rect), CGRectGetMaxY(rect));

// add left edge and close
CGPathCloseSubpath (path);

Доступность
Доступно в iPhone OS 2.0 и более поздних версиях.

Объявлено в
CGPath.h

person dlamblin    schedule 15.09.2009