Я думаю, возможно, путаница заключается в том, что Mac OS X использует координаты миллиметровки (так, начало координат слева внизу, положительное x справа, положительное y вверх), но iOS использует английские координаты порядка чтения (источник сверхуслева положительный х все еще прав, но положительный у вниз).Поскольку CoreGraphics работает одинаково на обеих платформах с точки зрения координат, если вы выполняете в iOS те же самые команды, что и в OS X, тогда ваша графика будет выглядеть перевернутой.Вот почему вы часто видите что-то вроде:
CGAffineTransform newTransform = CGAffineTransformMakeTranslation(0.0f, self.frame.size.height);
newTransform = CGAffineTransformScale(newTransform, 1.0f, -1.0f);
В верхней части пользовательского UIView drawRect: или drawLayer: inContext: (хотя вы, вероятно, должны получить информацию о размерах от CALayer во втором случае, чтобы быть уверенным вбыть потокобезопасным, в зависимости от того, почему вы решили перехватить drawLayer: inContext: в первую очередь).
Поэтому я думаю, что CGContextAddArc делает то, что, как вы думаете, делает - начинается с положительной оси x, а затем измеренияпротив часовой стрелки от этого (например, в соответствии с полярными координатами) - но то, что вы видите, является неправильным путем для триггера Apple на начальных векторах.