Въпреки че съм сравнително нов в класациите на iOS, работих доста широко с него и бях изложен на много различни аспекти от него. От по-простия край на инструментите за форматиране на стойности по персонализирана ос и набори от данни до по-сложни концепции като персонализирана лента, комбинирани и други диаграми и програми за изобразяване.

Тази статия се фокусира по-специално върху по-проста тема и произтича от скорошен проблем, който видях публикуван на страницата GitHub на iOS Charts, свързана с персонализирани етикети на оста y. Този проблем не е най-сложният; Въпреки това се надявам, че ако някой е закъсал, ще се натъкне на тази статия и тя ще го насочи в правилната посока.

Да започваме.

Настройка на проекта

Изненада! В тази статия няма да разглеждаме как да настроите проект за iOS. Ако все още не знаете как, потърсете в Medium и съм сигурен, че има много страхотни статии, които да ви помогнат да започнете.

Създаване на персонализиран AxisValueFormatter

Основната задача на това е много по-лесна, отколкото си мислите. Просто създайте нов клас, съобразете го с IAxisValueFormatter и имплементирайте необходимата stringForValue функция. Вътре във функцията stringForValue е мястото, където ще управлявате логиката за това как искате етикетите на вашите оси да бъдат форматирани. Можете да бъдете доста креативни с персонализирани форматиращи оси, така че ви призовавам да се запознаете с тях и да видите какво могат да направят за вас.

В този пример ще направим предположението, че нашият набор от данни съдържа само y-стойности от 0–4. Нашият инструмент за форматиране ще преобразува нашите y-стойности от 0–4 и ще ги покаже в условия от Напълно несъгласен до Напълно съгласен.

Съвместимост

Нека започнем, като създадем нашия клас, MyCustomAxisValueFormatter, и го съобразим с IAxisValueFormatter.

Както виждате, имаме грешка, за която трябва да се погрижим. Трябва да внедрим stringForValue, за да удовлетворим изискването на протокола IAxisValueFormatter.

Внедряване на stringForValue

Както споменахме по-рано, това е мястото, където ще върнем низа, който искаме да покажем на оста за определена стойност. Нека започнем с просто връщане на цяло число от стойността като низ, за ​​да разберем как работи методът.

Добавяне на персонализирана логика

След това ще създадем enum, за да представим различните състояния за нашите стойности. Това ще предостави начин за представяне на нашите стойности, както и ще предостави низ за етикета на оста y.

Сега, след като имаме enum с rawValue от тип Int, можем да преобразуваме нашата стойност в Int, да инициализираме AgreementRating и да използваме тази оценка, за да зададем етикета на нашата ос.

Забележка:За да опростя нещата, пренебрегнах обработката на грешки, тъй като гарантирам стойности 0–4. Въпреки това, в сценарий от реалния свят, НЕ разопаковайте принудително и игнорирайте възможността за повреда или вашето приложение може да се срине.

Конфигуриране на оста на диаграмата

Като последна стъпка, за да гарантираме, че нашата диаграма показва само тези пет етикета, трябва да зададем няколко свойства на лявата ос.

И ето го! Диаграма с персонализирани етикети на ос Y, която представя повече от просто цяло число/удвоена стойност.

(И да, това е персонализирана реализация на стълбовидна диаграма със заоблени ленти. Възможно е скоро да се появи в статия!)

Заключение

Вече видяхме как да създадем персонализиран инструмент за форматиране на стойност на ос и да го използваме за показване на низове, напълно различни от обикновена числова стойност. Тези потребителски програми за форматиране могат да бъдат много мощни както за x-, така и за y-осите. Благодаря на danielgindi за фантастичната библиотека с диаграми на iOS. Отидете да разгледате репото на GitHub! Връзка в Ресурси.

Ресурси

iOS Charts — https://github.com/danielgindi/Charts