Статьи

Работа с CorePlot: настройка проекта

При работе с приложениями, интенсивно использующими данные, разработчик часто должен делать больше, чем просто показывать списки записей данных в табличном представлении. Библиотека CorePlot позволит вам добавить потрясающие визуализации данных в ваши приложения. Узнайте, как в этой серии Tuts + Premium!

Визуализация данных имеет решающее значение, помогая пользователю разобраться в данных и принимать важные решения. CorePlot — это сторонняя библиотека, которая позволяет отображать ряд интерактивных графиков в вашем приложении. Это включает в себя линейные графики, графики рассеяния, гистограммы и даже круговые диаграммы. Вы можете настроить внешний вид графиков и даже позволить пользователю взаимодействовать с ними.


  1. Работа с CorePlot: настройка проекта
  2. Работа с CorePlot: основы построения
  3. Работа с CorePlot: стилизация и добавление графиков
  4. Работа с CorePlot: создание гистограммы
  5. Работа с CorePlot: создание круговой диаграммы

В следующих 5 уроках мы будем создавать приложение, которое отображает данные о зачислении студентов в университет. В частности, мы рассмотрим:

  • Как добавить CorePlot в приложение.
  • Основы CorePlot и как заставить работать график.
  • Создание линейного графика.
  • Стилизация графиков.
  • Создание гистограммы.
  • Абстрагирование графической логики данных.
  • Создание круговой диаграммы.

Вы должны иметь промежуточное понимание разработки под iOS и модели делегирования разработки. Понимание CoreData полезно, но не обязательно. Большая часть функциональности CoreData уже реализована, и вы будете проходить через любые дальнейшие обращения к хранилищу данных.


В исходном коде вы найдете базовое приложение, которое мы будем использовать в дальнейшем. Это базовое приложение панели вкладок, которое использует базовые данные для хранения информации об ученике и предмете и отображает их в отдельных табличных представлениях. Вы можете добавить ученика или предмет, нажав кнопку «+» в правом верхнем углу.

Предметный класс имеет следующие атрибуты:

  • Идентификатор субъекта: уникальный идентификатор, генерируется автоматически.
  • Имя субъекта: Имя субъекта, описывает, о чем предмет.

Студенческий класс имеет следующие атрибуты:

  • Студенческий идентификатор: уникальный идентификатор, автоматически сгенерированный.
  • Имя студента: Имя и фамилия студента.
  • Идентификатор субъекта: Идентификатор субъекта, в котором они зарегистрированы. Для простоты мы предполагаем, что студент может записаться только на один предмет.
  • День зачисления: мы предполагаем, что зачисление происходит в течение 7 дней. День зачисления — это день, когда студент зашел в этот период для зачисления.

Откройте проект и убедитесь, что он работает. В этой серии я не использую автоматический подсчет ссылок, поэтому нам придется управлять собственной памятью. Вы должны увидеть запуск приложения с вкладками «Студенты» и «Темы». Каждая вкладка должна содержать табличное представление с некоторыми предварительно заполненными данными в каждой. Как только вы подтвердите, что все работает, мы можем перейти к добавлению CorePlot в наше приложение.



Первый шаг — загрузить последнюю версию CorePlot. На момент написания статьи это v1.0. Посетите домашнюю страницу основного графика и перейдите в раздел загрузок .


Загрузите почтовый файл. Размер библиотеки составляет около 140 МБ, поэтому может потребоваться некоторое время, если у вас медленное соединение.

Мы собираемся поместить файлы библиотеки CorePlot в наше приложение. Рекомендуется хранить третьи лица в папке отдельно от других файлов классов. Создайте новую папку в папке «StudentTracker» с именем «Внешние библиотеки».

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

  1. Скопируйте каталог «CorePlot» во вновь созданную папку «Внешние библиотеки» внутри исходной папки StudentTracker.

  2. Создайте группу в XCode под названием «Внешние библиотеки»

  3. В искателе найдите файл проекта «CocoaTouch.xcodeproj» («CorePlot_1.0 / Source / frameworkCocoaTouch.xcodeproj») и перетащите его в группу «Внешние библиотеки» в Xcode.

  4. Выберите файл проекта приложения в xcode и нажмите на вкладку «Фазы сборки». Оттуда вам нужно добавить библиотеку CorePlot-CocoaTouch в группу «Target Dependencies».
  5. Вам также необходимо связать двоичный файл с библиотекой CorePlot. Разверните группу «Связать двоичные файлы с библиотеками» и добавьте «libCorePlot-CocoaTouch.a»

  6. Вам также нужно будет добавить некоторые настройки на вкладке Build Settings. Задайте путь поиска заголовка для каталога платформы в исходном каталоге CorePlot (должно быть «$ {PROJECT_DIR} / StudentTracker / Внешние библиотеки / CorePlot_1.0 / Source / framework /»). Установите флажок справа от текста (чтобы указать рекурсивный). Вам также следует изменить «Всегда искать пути пользователя» на «Да».

  7. Затем добавьте «-ObjC» в поле «Другие флаги компоновщика».
  8. CorePlot опирается на платформу QuartzCore, поэтому добавьте ее в качестве необходимой платформы.
  9. Наконец, вам нужно будет импортировать файл «CorePlot-cocoaTouch.h» во все файлы, для которых он требуется. Нам это пока не нужно, но попробуйте добавить его в файл делегата приложения, чтобы убедиться, что все компилируется правильно.

Если проект успешно компилируется, тогда все хорошо!


1
CPTAnnotation.h file not found

Это означает, что папка поиска пути заголовка не была правильно расположена. Убедитесь, что вы используете «Пути поиска по заголовку», а не «Framework Search Paths». Важно убедиться, что флажок установлен и «Всегда искать пути пользователя» установлен на «Да».

1
2
Undefined symbols for architecture i386:
  «_CATransform3DIsIdentity», referenced from: …

Эти страшно выглядящие ошибки существуют, потому что QuartzCore Framework не был включен. Все, что вам нужно сделать, это включить QuartzCore Framework (в группу «Link Binary With Libraries»), и эти ошибки исчезнут!


Мы получили хорошее представление о том, что может делать CorePlot и как добавить его в существующий проект. В следующий раз мы запачкаем руки и начнем строить линейный график, показывающий, сколько студентов зачислено в каждый день зачисления. Увидимся в следующий раз!