1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xpq-XPQLabel

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

XPQLabel

Добавьте жизнь вашим словам!!!
Позвольте вашим словам следовать произвольному пути!!!

С помощью XPQLabel вы можете легко создать различные эффекты отображения текста и анимацию с минимальным количеством кода.

Классификация наследования

UML

Язык программирования

Основной язык — смесь Objective-C и C++. Objective-C используется для базового отображения и управления, в то время как C++ отвечает за расчёт пути.

Установка

Использование XPQLabel очень простое, достаточно выполнить три шага.

Шаг 1: Включение заголовочного файла

Переместите папку XPQLabel вместе со всеми её файлами в проект. Включите заголовочный файл, используя #import "XPQLabel.h".

Шаг 2: Инициализация

Инициализация через код

XPQLabel *label = [[XPQLabel alloc] init];

Визуальная инициализация

Просто перетяните UIView на storyboard или xib, установите свойство Class на XPQLabel, затем свяжите его с объектом.

Шаг 3: Настройка текста

Настройка обычного текста

Настройка через код
label.font = [UIFont systemFontOfSize:18.0];
label.textColor = [UIColor blackColor];
label.text = @"Это обычная строка текста.";
Настройка через storyboard или xib

Достаточно изменить свойства text и textColor на панели, как показано ниже:

Настройка текста#### Настройка атрибутированного текста Атрибутированный текст можно настроить только через код

NSMutableAttributedString *attriString = [[NSMutableAttributedString alloc] initWithString:@"этот атрибутированный текст."];
// Изменение цвета шрифта слова "этот" на красный
[attriString addAttribute:(NSString *)kCTForegroundColorAttributeName
value:(id)[UIColor redColor].CGColor
range:NSMakeRange(0, 5)];
// Изменение цвета шрифта слова "атрибутированный" на зелёный
[attriString addAttribute:(NSString *)kCTForegroundColorAttributeName
value:(id)[UIColor greenColor].CGColor
range:NSMakeRange(6, 15)];
// Изменение шрифта слова "текст"
[attriString addAttribute:(NSString *)kCTFontAttributeName value:(id)CFBridgingRelease(CTFontCreateWithName((CFStringRef)[UIFont boldSystemFontOfSize:12].fontName, 20, NULL)) range:NSMakeRange(22, 4)];
// Добавление подчёркивания слову "текст"
[attriString addAttribute:(NSString *)kCTUnderlineStyleAttributeName
value:(id)[NSNumber numberWithInt:kCTUnderlineStyleDouble]
range:NSMakeRange(22, 4)];
```label.attributedText = attriString;
```## Установка атрибутов
Конечно, после выполнения трёх шагов можно лишь просто отобразить текст. Для достижения дополнительных эффектов потребуется установка некоторых атрибутов.
### Выравнивание текста
Для выравнивания текста используются два свойства — `textHorizontalAlignment` и `textVerticalAlignment`. Из названий этих свойств можно понять их назначение. Эти свойства соответствуют следующим двум перечислителям:
```ios
typedef enum : NSUInteger {
XPQLabelHorizontalAlignmentLeft,      // Левое выравнивание
XPQLabelHorizontalAlignmentCenter,    // Горизонтальное центрирование
XPQLabelHorizontalAlignmentRight,     // Правое выравнивание
} XPQLabelHorizontalAlignment;

typedef enum : NSUInteger {
XPQLabelVerticalAlignmentUp,          // Вертикальное верхнее центрирование
XPQLabelVerticalAlignmentCenter,      // Вертикальное центрирование
XPQLabelVerticalAlignmentDown,        // Вертикальное нижнее центрирование
} XPQLabelVerticalAlignment;

Пример использования приведён ниже:

Эффект выравнивания

Путь

Установка этого свойства позволяет тексту отображаться вдоль указанного пути. Путь представляет собой объект типа XPQLabelPath, который также легко использовать. Сначала используйте метод pathForBeginPoint класса XPQLabelPath для создания начальной точки пути.

XPQLabelPath *path = [XPQLabelPath pathForBeginPoint:CGPointMake(10. Yö, 10.0)];

Затем используйте методы addLineToPoint: / addArcWithCentrePoint:angle: / addCurveToPoint:anchorPoint: для добавления различных сегментов пути.

// Добавление линии
[path addLineToPoint:CGPointMake(250.0, 50.0)];
// Добавление окружности
[path addArcWithCenterPoint:CGPointMake(90.0, 70.0) angle:-M_PI];
// Добавление кривой Безье
[path addCurveToPoint:CGPointMake(300.0, 60.0) controlPoint:CGPointMake(100.0, 0.0)];
```

Наконец, присвойте путь свойству `path` или используйте метод `setPath:rotate:animation:`.
```ios
// С ротацией и анимацией
label.path = path;
// Ротация и анимация могут быть выбраны
[label setPath:path rotate:rotate animation:animation];
```

Пример использования приведён ниже:

![Эффект пути](https://github.com/xiepanqi/XPQLabel/blob/master/domeImage/pathDome.gif)

### Траектория жеста
Это очень крутое и интересное действие (хотя оно может быть мало применимым).
Установите свойство `gesturePathEnabled` равным `YES`, чтобы текст отображался по траектории движения вашего пальца по экрану. Пример использования приведён ниже:

![Эффект траектории жеста](https://github.com/xiepanqi/XPQLabel/blob/master/domeImage/gestureDome.gif)

### Входящие и исходящие анимации
На данный момент реализовано две входящие и две исходящие анимации. Функции для вызова этих анимаций представлены ниже:
```objc
[startShowWithDirection:duration:bounce:stepTime:]
[startHideWithDirection:duration:stepTime:]
```
![Анимация 1](https://github.com/xiepanqi/XPQLabel/blob/master/domeImage/animationDome1.gif)
```objc
startFixedShowWithTransform: duration:stepTime:
startFixedHideWithTransform:duration:stepTime:
```
![Анимация 2](https://github.com/xiepanqi/XPQLabel/blob/master/domeImage/animationDome2.gif)

> **ПРИМЕЧАНИЕ:** Если вам понравилось, пожалуйста, оцените проект звездой, спасибо.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/xpq-XPQLabel.git
git@api.gitlife.ru:oschina-mirror/xpq-XPQLabel.git
oschina-mirror
xpq-XPQLabel
xpq-XPQLabel
master