iOS: renderInContext отображает содержимое окна при -90 градусов? - PullRequest
1 голос
/ 18 ноября 2011

Я пытаюсь запустить поддержку внешнего экрана. К сожалению, метод, который я использую для рендеринга окна в CGContextRef, приводит к тому, что окно поворачивается (без указания поворота) на -90 градусов.

UIGraphicsBeginImageContext (extwin.bounds.size);
CGContextRef context = UIGraphicsGetCurrentContext();

 if ([window screen] == [UIScreen mainScreen])
    {
        CGContextSaveGState(context);
        [[window layer] renderInContext:context];
        CGContextRestoreGState (context);
        break;
}

Может кто-нибудь сказать мне, как это исправить? Я использовал только основную графику для базового рисования, а не для преобразования.

Спасибо.

1 Ответ

0 голосов
/ 18 ноября 2011

Базовая система координат для CoreGraphics отличается от базовой системы координат для UIKit. И на самом деле, это разные на разных устройствах. Похоже, вам нужно выяснить, какая базовая система координат находится на вашем конкретном устройстве, а затем применить преобразование CTM к вашему контексту, прежде чем пытаться визуализировать слой окна. Это позволит вам преобразовать базовую систему координат из CoreGraphics в ту же, что вы ожидали.

Чтобы уточнить, когда вы создаете новый контекст, система координат полностью документируется. Однако система координат, используемая слоем окна, будет соответствовать базовой системе координат CoreGraphics для экрана (которая отличается на разных устройствах). Это необходимо перевести обратно, чтобы соответствовать системе координат для вашего контекста, и вы можете сделать это, выяснив правильное аффинное преобразование и применив его к своему контексту с помощью CGContextConcatCTM() и связанных функций.

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