Background ImageView переворачивается, когда я использую CPTPGraphHostingView [Основной график]

Я использую базовый график 1.0 в своем приложении для iPhone. Все работает отлично, графики отлично рисуются, но я столкнулся со странной проблемой, что все элементы управления на странице графика (CPTPGraphHostingView) являются зеркальными.

Т.е.: в этом файле xib я устанавливаю класс в классе Identity верхнего UIView равным CPTPGraphHostingView, и тогда возникает проблема.

Пожалуйста, помогите мне, как решить эту проблему. Элементы управления отображаются правильно в конструкторе интерфейса, но когда я запускаю проект, все портится.

Даже я пытался добавить фоновое изображение программно, но это также отражается.

 user51749130 мар. 2012 г., 09:09
@EricSkroch Спасибо, я получил решение от вашего ответа по указанной вами ссылке.
 Eric Skroch30 мар. 2012 г., 02:37

Ответы на вопрос(2)

self.view = (CPTPGraphHostingView *)view

 user51749129 мар. 2012 г., 16:26
аууу это не работает ...
 Vignesh29 мар. 2012 г., 16:17
Где вы добавляете представление CPGraph.
 user51749129 мар. 2012 г., 16:12
в какой функции? viewDidLoad?
Решение Вопроса

Ссылки на этот ответ:

Основной сюжет гугл группы
Схожий вопрос

Я узнал, что весь CPTPGraphHostingView перевернут вверх ногами для поддержки Mac OS и iOS. Это по замыслу и не является ошибкой.

Так что решение по приведенным ссылкам таково:

Добавьте два вида в ваш файл xibодин из типаCPTPGraphHostingView(для добавления графика) и другой типUIView(для добавления любых других элементов управления пользовательского интерфейса, фонов и т. д.). Вы можете изменить тип просмотра, изменивClass field подheading Class Identity вView Identity tab изFile's Owner window.Теперь добавьте график в CPTPGraphHostingView и добавьте другие элементы управления пользовательским интерфейсом в другое представление (UIView)Конец истории

ОБНОВИТЬ: Если вы добавите CPTPGraphHostinView к интерфейсу, другие компоненты не будут видны, для этого вам нужно будет установить тему и заполнить CPTXYGraph значением nil. Т.е. добавьте следующие строки после инициализации вашего CPTXYGraph:

CPTTheme *theme = nil;
[barChart applyTheme:theme]; // barChart is my CPTXYGraph

barChart.fill = nil;
barChart.plotAreaFrame.fill = nil;

НОТА:Добавьте CPTPGraphHostingView так, чтобы он был дочерним по отношению к UIView верхнего уровня, а другие компоненты - в UIView верхнего уровня, а CPTPGraphHostingView выше всех других компонентов.

 Brad Larson♦30 мар. 2012 г., 22:39
«Хотя очень жалкий подход к дизайну» - видя, как я это спроектировал, я обижаюсь на этот комментарий. Как я объясняюВот, UIViews по умолчанию переворачивают систему координат CALayers, содержащихся в них. NSViews на Mac и нормальные контексты Кварца не переворачивают эту систему координат. Поэтому, чтобы использовать один и тот же код рендеринга на Mac и iOS, Core Plot необходимо инвертировать один из двух. Учитывая, что UIViews - те, кто выполняет переворачивание, мы решили инвертировать это преобразование на iOS, чтобы оно соответствовало Mac.
 user51749101 апр. 2012 г., 12:52
@ Downvoter хотите объяснить, почему голосуете?
 user51749110 апр. 2012 г., 15:20
@TechnocraT Я обновил свой ответ. Это решит вашу проблему И.А.
 user51749130 мар. 2012 г., 23:32
@BradLarson Хорошо, я извиняюсь, удалил эти комментарии.
 TechnocraT10 апр. 2012 г., 14:51
Я добавил UIView и просмотр изображения внутри него вместе с CPTGraphHostingVIew в xib. Но я вижу только график, но не вид с изображением. Вид графика перекрывается с UIView? Куда я иду не так?

Ваш ответ на вопрос