CGContext - "по модулю" рисунок? - PullRequest
0 голосов
/ 17 апреля 2011

Представьте, что я хочу нарисовать пользовательский вид в данном прямоугольнике (например, 100 х 100 пикселей). Содержимое моего пользовательского представления может быть больше, чем 100 x 100. Вместо того, чтобы некоторое содержимое не отображалось, я бы хотел нарисовать все содержимое в области 100 x 100. Например, точка, которая обычно находится в точке (125, 140), теперь будет отображаться в точке (25, 40).

Есть ли способ сделать это без необходимости (в основном) изменения кода чертежа? Имейте в виду, что я также рисую более сложные фигуры, такие как безье пути.

1 Ответ

1 голос
/ 17 апреля 2011

Возможно, вы могли бы масштабировать пространство для рисования с помощью CGContextScaleCTM (...) .

ex

CGFloat sx, sy;
sx = self.frame.size.width / desiredWidth;
sy = self.frame.size.height / desiredHeight;

CGContextScaleCTM(context, sx, sy);

РЕДАКТИРОВАТЬ:

Как рекомендует Codo ниже, вы можете искать CGContextTranslateCTM (...) , который сместит координатное пространство вашего контекста на некоторое значение x / y.

...