При работе с приложениями, интенсивно использующими данные, разработчик часто должен делать больше, чем просто показывать списки записей данных в табличном представлении. Библиотека CorePlot позволит вам добавить потрясающие визуализации данных в ваши приложения. Узнайте, как в этой серии Tuts + Premium!
Визуализация данных имеет решающее значение, помогая пользователю разобраться в данных и принимать важные решения. CorePlot — это сторонняя библиотека, которая позволяет отображать ряд интерактивных графиков в вашем приложении. Это включает в себя линейные графики, графики рассеяния, гистограммы и даже круговые диаграммы. Вы можете настроить внешний вид графиков и даже позволить пользователю взаимодействовать с ними.
Также доступно в этой серии:
- Работа с CorePlot: настройка проекта
- Работа с CorePlot: основы построения
- Работа с CorePlot: стилизация и добавление графиков
- Работа с CorePlot: создание гистограммы
- Работа с CorePlot: создание круговой диаграммы
Что мы покроем
В следующих 5 уроках мы будем создавать приложение, которое отображает данные о зачислении студентов в университет. В частности, мы рассмотрим:
- Как добавить CorePlot в приложение.
- Основы CorePlot и как заставить работать график.
- Создание линейного графика.
- Стилизация графиков.
- Создание гистограммы.
- Абстрагирование графической логики данных.
- Создание круговой диаграммы.
Требуемые знания
Вы должны иметь промежуточное понимание разработки под iOS и модели делегирования разработки. Понимание CoreData полезно, но не обязательно. Большая часть функциональности CoreData уже реализована, и вы будете проходить через любые дальнейшие обращения к хранилищу данных.
Образец заявки
В исходном коде вы найдете базовое приложение, которое мы будем использовать в дальнейшем. Это базовое приложение панели вкладок, которое использует базовые данные для хранения информации об ученике и предмете и отображает их в отдельных табличных представлениях. Вы можете добавить ученика или предмет, нажав кнопку «+» в правом верхнем углу.
Предметный класс имеет следующие атрибуты:
- Идентификатор субъекта: уникальный идентификатор, генерируется автоматически.
- Имя субъекта: Имя субъекта, описывает, о чем предмет.
Студенческий класс имеет следующие атрибуты:
- Студенческий идентификатор: уникальный идентификатор, автоматически сгенерированный.
- Имя студента: Имя и фамилия студента.
- Идентификатор субъекта: Идентификатор субъекта, в котором они зарегистрированы. Для простоты мы предполагаем, что студент может записаться только на один предмет.
- День зачисления: мы предполагаем, что зачисление происходит в течение 7 дней. День зачисления — это день, когда студент зашел в этот период для зачисления.
Откройте проект и убедитесь, что он работает. В этой серии я не использую автоматический подсчет ссылок, поэтому нам придется управлять собственной памятью. Вы должны увидеть запуск приложения с вкладками «Студенты» и «Темы». Каждая вкладка должна содержать табличное представление с некоторыми предварительно заполненными данными в каждой. Как только вы подтвердите, что все работает, мы можем перейти к добавлению CorePlot в наше приложение.
Импорт CorePlot
Первый шаг — загрузить последнюю версию CorePlot. На момент написания статьи это v1.0. Посетите домашнюю страницу основного графика и перейдите в раздел загрузок .
Загрузите почтовый файл. Размер библиотеки составляет около 140 МБ, поэтому может потребоваться некоторое время, если у вас медленное соединение.
Мы собираемся поместить файлы библиотеки CorePlot в наше приложение. Рекомендуется хранить третьи лица в папке отдельно от других файлов классов. Создайте новую папку в папке «StudentTracker» с именем «Внешние библиотеки».
Вы можете включить CorePlot в качестве установки зависимого проекта или статической библиотеки. Мне нравится включать его как установку зависимого проекта, так как он позволяет нам получить доступ к исходному коду и увидеть, как все работает в отдельной форме, просто просматривая заголовочные файлы.
- Скопируйте каталог «CorePlot» во вновь созданную папку «Внешние библиотеки» внутри исходной папки StudentTracker.
- Создайте группу в XCode под названием «Внешние библиотеки»
- В искателе найдите файл проекта «CocoaTouch.xcodeproj» («CorePlot_1.0 / Source / frameworkCocoaTouch.xcodeproj») и перетащите его в группу «Внешние библиотеки» в Xcode.
- Выберите файл проекта приложения в xcode и нажмите на вкладку «Фазы сборки». Оттуда вам нужно добавить библиотеку CorePlot-CocoaTouch в группу «Target Dependencies».
- Вам также необходимо связать двоичный файл с библиотекой CorePlot. Разверните группу «Связать двоичные файлы с библиотеками» и добавьте «libCorePlot-CocoaTouch.a»
- Вам также нужно будет добавить некоторые настройки на вкладке Build Settings. Задайте путь поиска заголовка для каталога платформы в исходном каталоге CorePlot (должно быть «$ {PROJECT_DIR} / StudentTracker / Внешние библиотеки / CorePlot_1.0 / Source / framework /»). Установите флажок справа от текста (чтобы указать рекурсивный). Вам также следует изменить «Всегда искать пути пользователя» на «Да».
- Затем добавьте «-ObjC» в поле «Другие флаги компоновщика».
- CorePlot опирается на платформу QuartzCore, поэтому добавьте ее в качестве необходимой платформы.
- Наконец, вам нужно будет импортировать файл «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 и как добавить его в существующий проект. В следующий раз мы запачкаем руки и начнем строить линейный график, показывающий, сколько студентов зачислено в каждый день зачисления. Увидимся в следующий раз!