NudeIn — это iOS-компонент для управления текстом в стиле, схожем с Masonry. Он использует элегантный декларативный (цепной) метод для определения компонентов управления текстом. Этот подход требует минимального количества кода и очень прост в использовании.
Кроме того, NudeIn предлагает множество возможностей для снижения избыточности кода. Например, если вам нужно создать несколько текстовых элементов с одинаковым стилем или частично совпадающим стилем, вы можете использовать шаблоны. Шаблон можно легко объявить и применить к любому компоненту, который его использует. Каждый компонент также может иметь свои уникальные свойства, чтобы переопределить свойства шаблона и достичь частичного совпадения стилей.
По сравнению с другими сторонними библиотеками управления текстом, NudeIn является наиболее интуитивно понятным решением. Учиться работать с ним будет легче всего тем, кто имеет опыт работы с Masonry. Для остальных NudeIn кажется специально спроектированным для удобства использования.
Использование NudeIn очень просто. Вот пример:
#import "NudeIn.h"
@property (nonatomic, strong) NudeIn *attrLabel;
_attrLabel = [NudeIn make:^(NUDTextMaker *make) {
make.text(@"this is a ").font(14).color([UIColor blackColor]).attach();
make.text(@"BlueLink").font(17).color([UIColor blueColor]).link(self, @selector(linkHandler:)).attach();
make.text(@", and this is a ").font(14).color([UIColor blackColor]).attach();
make.text(@"RedLink").font(17).color([UIColor redColor]).link(self, @selector(linkHandler:)).attach();
}];
- (void)linkHandler:(NUDAction *)action {
if ([action isKindOfClass:[NUDLinkAction class]]) {
NUDLinkAction *linkAction = (NUDLinkAction *)action;
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:linkAction.string message:nil preferredStyle:UIAlertControllerStyleAlert];
[alertController addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {}]];
[self presentViewController:alertController animated:YES completion:nil];
}
}
Результат будет таким:
Нажатие на часть с атрибутом link вызывает обратный вызов:
pod 'NudeIn'
Самая новая версия pod: 1.2.8
1.2.7 Обновление:
Улучшена логика прикосновений, исправлено использование makeTemplate в наследниках, исправлено отсутствие эффекта тени при отсутствии передачи шаблона.
В makeTemplate добавлены всеText и всеImage, что позволяет унифицировать конфигурацию для всех текстовых элементов.
Добавлена возможность создания пользовательских методов:
Эта возможность позволяет адаптировать код NudeIn под конкретные требования проекта, что уменьшает количество кода и повышает повторное использование. Минимальная iOS версия: 8.0
Вы можете скопировать все файлы из папки NudeIn из master или 1.2.7 в ваш проект.
Master ветка может содержать новые возможности или быть нестабильной версией. Если вы столкнулись с проблемой во время использования, просьба сообщить об этом через commit an issue или отправить pull request.
Шрифт Указывает размер шрифта, использует системный шрифт
Имя шрифта Указывает имя шрифта и его размер
Шрифт Res Указывает шрифт через объект UIFont
Стиль шрифта Указывает стиль шрифта, такой как Bold, Light и т.д.
Жирный Указывает жирный стиль шрифта, если он доступен
Цвет Указывает цвет текста
Подчеркивание Указывает текст со строчной подчеркивающей линией
Лучшая видимость Указывает текст как полупрозрачный
Заливка Указывает текст как полностью заливаемый
Ссылка Указывает текст как гипертекстовый
Подчеркивание Указывает текст со строчной подчеркивающей линией
Устаревший Указывает текст со линией удаления
Наклоненный Указывает текст как наклоненный
- Пробел между буквами Указывает плотность текста
ln Задает перенос строки
ligature Задает использование связанных символов (ligatures)
letterpress Задает использование эффекта печати (выдавленные буквы), этот атрибут требует много памяти, используйте осторожно
vertical Задает вертикальное смещение текста
stretch Задает горизонтальное растяжение текста (деформацию)
reverse Задает обратное написание текста
shadow Добавляет стандартную тень к тексту
shadowDirection Добавляет тень к тексту и задает её направление одним из восьми основных направлений
shadowOffset Добавляет тень к тексту и полностью задает её направление
shadowBlur Добавляет тень к тексту и задает степень размытия
shadowColor Добавляет тень к тексту и задает цвет тени
shadowRes Добавляет тень к тексту через NSShadow и задает её параметры
lineSpacing Задает межстрочный интервал текста
lineHeight Задает высоту строки текста, принимает значения минимальной, максимальной высоты и множителя высоты
paraSpacing Задает расстояние между абзацами, принимает значения расстояния до предыдущего и следующего абзаца
alignment Задает выравнивание текста, принимает значение типа NUDAlignment
indent Задает отступ текста, принимает значения левого и правого отступа
headIndent Задает отступ первой строки текста, этот атрибут переопределяет свойство отступа indent для первой строки
linebreak Задает способ переноса строк текста, принимает значение типа NUDLineBreakMode
highlight Задает режим выделения при нажатии на текст, принимает идентификатор шаблона
tap Задает действие при нажатии на текст, принимает целевой объект и метод обратного вызова
textTemplate Задает шаблон текста, который можно использовать повторно по указанному идентификатору, используется аналогично тексту
imageTemplate Задает шаблон изображения, который можно использовать повторно по указанному идентификатору, используется аналогично изображению
allText Применяет указанный атрибут ко всем текстовым элементам, добавленным с помощью .attach(), .attachWith(@"") не затрагивает эти элементы
allImage Применяет указанный атрибут ко всем изображениям, добавленным с помощью .attach(), .attachWith(@"") не затрагивает эти элементы
textTemplate Глобально задает шаблон текста, который можно использовать повторно по указанному идентификатору, используется аналогично тексту
imageTemplate Глобально задает шаблон изображения, который можно использовать повторно по указанному идентификатору, используется аналогично изображению
allText Глобально применяет указанный атрибут ко всем текстовым элементам, добавленным с помощью .attach(), .attachWith(@"") не затрагивает эти элементы
allImage Глобально применяет указанный атрибут ко всем изображениям, добавленным с помощью .attach(), .attachWith(@"") не затрагивает эти элементы
шрифт по умолчанию использует системный шрифт. Если использовать только системный шрифт, это сделает ваш код более простым.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.text(@"Github.com").font(32).attach();
}];
fontName позволяет установить шрифт по имени семейства или конкретного жирного шрифта.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.text(@"Github.com").fontName(@"AmericanTypewriter",32).ln(1).attach();
make.text(@"Github.com").fontName(@"AmericanTypewriter-Bold",32).attach();
}];
fontRes позволяет установить шрифт с использованием пользовательского UIFont
, что предоставляет больше гибкости.
UIFont *font = [UIFont fontWithName:@"AmericanTypewriter" size:32];
UIFont *fontBold = [UIFont fontWithName:@"AmericanTypewriter-Bold" size:32];
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.text(@"Github.com").fontRes(font).ln(bk).attach();
make.text(@"Github.com").fontRes(fontBold).attach();
}];
fontStyle позволяет удобнее задавать стиль шрифта, но важно помнить, что стиль должен совпадать с именем шрифта, например NUDBold
для шрифтов с суффиксом -Bold
.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.text(@"Github.com").fontName(@"AmericanTypewriter",32).fontStyle(NUDBold).attach();
}];
bold позволяет задать текст как жирный, что может сделать код более читаемым.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.text(@"Github.com").fontName(@"AmericanTypewriter",32).bold().attach();
}];
color позволяет задать цвет текста, передавая UIColor
.```objc
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.allText().fontName(@"AmericanTypewriter",32).bold().attach();
make.text(@"G").color([UIColor orangeColor]).attach();
make.text(@"i").color([UIColor redColor]).attach();
make.text(@"t").color([UIColor blueColor]).attach();
make.text(@"h").color([UIColor magentaColor]).attach();
make.text(@"u").color([UIColor brownColor]).attach();
make.text(@"b").color([UIColor greenColor]).attach();
}];
<img src="https://github.com/hon-key/HKAttributedTextView/raw/master/Screenshots/color.png" />
<p align="right"><a href="#indexes">назад</a></p>
### **mark**
**mark** позволяет задать фоновый цвет текста, создавая эффект маркерной ручки.
```objc
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.allText().fontName(@"AmericanTypewriter",32).color([UIColor whiteColor]).bold().attach();
make.text(@"G").mark([UIColor orangeColor]).attach();
make.text(@"i").mark([UIColor redColor]).attach();
make.text(@"t").mark([UIColor blueColor]).attach();
make.text(@"h").mark([UIColor magentaColor]).attach();
make.text(@"u").mark([UIColor brownColor]).attach();
make.text(@"b").mark([UIColor greenColor]).attach();
}];
hollow позволяет сделать текст полужирным, создавая эффект искусства.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.allText().fontName(@"AmericanTypewriter",32).bold().attach();
make.text(@"G").hollow(4,[UIColor orangeColor]).attach();
make.text(@"i").hollow(4,[UIColor redColor]).attach();
make.text(@"t").hollow(4,[UIColor blueColor]).attach();
make.text(@"h").hollow(4,[UIColor magentaColor]).attach();
make.text(@"u").hollow(4,[UIColor brownColor]).attach();
make.text(@"b").hollow(4,[UIColor greenColor]).attach();
}];
solid позволяет сделать текст сплошным, позволяя задать внутренний цвет текста.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.allText().fontName(@"AmericanTypewriter",64).bold().color([UIColor cyanColor]).attach();
make.text(@"G").solid(4,[UIColor orangeColor]).attach();
make.text(@"i").solid(4,[UIColor redColor]).attach();
make.text(@"t").solid(4,[UIColor blueColor]).attach();
make.text(@"h").solid(4,[UIColor magentaColor]).attach();
make.text(@"u").solid(4,[UIColor brownColor]).attach();
make.text(@"b").solid(4,[UIColor greenColor]).attach();
}];
link позволяет сделать текст ссылкой, которая вызывает метод при клике.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.text(@"Github.com").font(64).link(self,@selector(linkHandler:)).color([UIColor blueColor])._(NUD_,[UIColor blueColor]).attach();
}];
underline позволяет подчеркнуть текст, используя различные варианты подчеркивания.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.allText().fontName(@"AmericanTypewriter",32).bold().ln(1).color([UIColor cyanColor]).attach();
make.text(@"Github")._(NUD_,[UIColor blueColor]).attach();
make.text(@"Github")._(NUD__,[UIColor blackColor]).attach();
make.text(@"Github")._(NUDThick_,[UIColor blueColor]).attach();
make.text(@"Github")._(NUDDot,[UIColor blueColor]).attach();
make.text(@"Github")._(NUDDotDot,[UIColor blueColor]).attach();
make.text(@"Github")._(NUDDash,[UIColor blueColor]).attach();
make.text(@"Github")._(NUDDashDot,[UIColor blueColor]).attach();
make.text(@"Github")._(NUDDashDotDot,[UIColor blueColor]).attach();
make.text(@"Github com")._(NUDDashDotDot|NUDByWord,[UIColor blueColor]).attach();
}];
deprecated добавляет зачеркивание текста, что указывает на то, что данный текст был удален или отозван, что повышает читаемость.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.text(@"Github.com").font(64).deprecated([UIColor blackColor]).attach();
}];
skew наклоняет текст, угол наклона зависит от переданного значения типа CGFloat
.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.allText().fontName(@"AmericanTypewriter",32).bold().ln(1).alignment(NUDAliCenter).attach();
make.text(@"Github.com").skew(0.0).attach();
make.text(@"Github.com").skew(0.2).attach();
make.text(@"Github.com").skew(0.4).attach();
make.text(@"Github.com").skew(0.8).attach();
make.text(@"Github.com").skew(1).attach();
make.text(@"Github.com").skew(1.2).attach();
}];
kern устанавливает плотность текста, которая зависит от переданного значения типа CGFloat
.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.allText().fontName(@"AmericanTypewriter",32).bold().ln(1).alignment(NUDAliCenter).attach();
make.text(@"Github.com").kern(0.0).attach();
make.text(@"Github.com").kern(0.2).attach();
make.text(@"Github.com").kern(0.4).attach();
make.text(@"Github.com").kern(0.8).attach();
make.text(@"Github.com").kern(1).attach();
make.text(@"Github.com").kern(1.2).attach();
}];
ln указывает, что компонент должен перейти на новую строку. Это свойство позволяет не вручную добавлять \n
в тексте, а также передать целое число больше одного для нескольких переходов на новую строку. Важно отметить, что свойства перехода строки будут применяться ко всем другим строкам внутри этого компонента.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.text(@"Github.com").font(32).ln(2).attach();
make.text(@"Github.com").font(16).ln(2).attach();
make.text(@"Github.com").font(32).attach();
}];
ligature объявляет текст как связанный, после применения которого шрифт будет иметь эффект связанного письма. Важно заметить, что это свойство работает только с некоторыми буквами и шрифтами, поддерживающими связывание.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.text(@"This is a attributed string").fontName(@"zapfino",23).ligature(NO).ln(1).attach();
make.text(@"This is a attributed string").fontName(@"zapfino",23).ligature(YES).attach();
}];
letterpress объявляет текст как имеющий печатный эффект.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.text(@"Github.com").font(64).letterpress().ln(1).attach();
make.text(@"Github.com").font(64).ln(1).attach();
}];
vertical делает текст вертикально смещенным, передавая значение типа CGFloat
. Если значение положительно, текст будет сместиться вверх, если отрицательно — вниз.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.text(@"Github").font(64).attach();
make.text(@"[1]").font(15).color([UIColor blueColor]).vertical(35).ln(bk).attach();
make.text(@"Github").font(64).attach();
make.text(@".com").font(32).color([UIColor orangeColor]).vertical(-20).attach();
}];
```
<p align="right"><a href="#indexes">назад</a></p>
### **stretch**
**stretch** Вытягивает текст горизонтально, степень вытягивания зависит от переданного значения типа `CGFloat`. Чем меньше значение, тем более вытянутым будет текст; чем больше значение, тем менее вытянутым он будет.
```objc
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.text(@"Github").font(64).ln(1).attach();
make.text(@"Github").font(64).stretch(0.5).ln(1).attach();
make.text(@"Github").font(64).stretch(-0.5).attach();
}];
reverse Обращает порядок символов в тексте.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.text(@"Github").font(64).ln(1).attach();
make.text(@"Github").font(64).reverse().attach();
}];
shadow Добавляет стандартную тень к тексту, делая его выглядеть немного выпуклым.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.text(@"Github").font(64).color([UIColor whiteColor]).shadow().attach();
}];
shadowDirection Добавляет стандартную тень к тексту и позволяет определить четыре основных направления тени: сверху, снизу, слева и справа. Второй параметр используется для определения степени выступания тени. Важно отметить, что при использовании autolayout для размещения контрола, размер его frame автоматически не увеличится из-за тени, поэтому может потребоваться ручная корректировка.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.allText().font(64).color([UIColor orangeColor]).alignment(NUDAliCenter).ln(1).attach();
make.text(@"Github").shadowDirection(NUDLeft,10).attach();
make.text(@"Github").shadowDirection(NUDRight,10).attach();
make.text(@"Github").shadowDirection(NUDBottom,10).attach();
make.text(@"Github").shadowDirection(NUDTop,10).attach();
}];
shadowOffset Добавляет стандартную тень к тексту и позволяет полностью настроить направление тени.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.allText().font(64).color([UIColor orangeColor]).alignment(NUDAliCenter).ln(1).attach();
make.text(@"Github").shadowOffset(-5,-5).attach();
make.text(@"Github").shadowOffset(5,5).attach();
make.text(@"Github").shadowOffset(-5,5).attach();
make.text(@"Github").shadowOffset(5,-5).attach();
}];
shadowBlur Добавляет стандартную тень к тексту и позволяет полностью настроить уровень размытия тени. Чем выше значение, тем более размытой будет тень, создавая впечатление, что текст находится дальше от источника тени.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.allText().font(64).color([UIColor orangeColor]).shadowOffset(20,0).alignment(NUDAliCenter).ln(1).attach();
make.text(@"Github").shadowBlur(0).attach();
make.text(@"Github").shadowBlur(2).attach();
make.text(@"Github").shadowBlur(4).attach();
make.text(@"Github").shadowBlur(8).attach();
}];
shadowColor Добавляет стандартную тень к тексту и позволяет полностью настроить цвет тени.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.allText().shadowDirection(NUDRight,15).font(64).shadowBlur(3).color([UIColor orangeColor]).ln(1).attach();
make.text(@"Github").shadowColor([UIColor redColor]).attach();
make.text(@"Github").shadowColor([UIColor blueColor]).attach();
make.text(@"Github").shadowColor([UIColor greenColor]).attach();
make.text(@"Github").shadowColor([UIColor orangeColor]).attach();
}];
shadowRes Добавляет пользовательскую тень к тексту, позволяющую передать объект NSShadow для настройки тени.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
NSShadow *shadow = [[NSShadow alloc] init];
shadow.shadowOffset = CGSizeMake(8, 0);
shadow.shadowColor = [UIColor redColor];
shadow.shadowBlurRadius = 3;
make.text(@"Github").shadowRes(shadow).font(64).attach();
}];
lineSpacing позволяет указывать расстояние между строками при смене строки.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.allText().font(32).color([UIColor orangeColor]).ln(1).attach();
make.text(@"Github").lineSpacing(0).attach();
make.text(@"Github").lineSpacing(8).attach();
make.text(@"Github").lineSpacing(16).attach();
make.text(@"Github").lineSpacing(32).attach();
}];
lineHeight позволяет указывать высоту строки текста, которая может увеличиваться вверх. Здесь есть три параметра:
minimumLineHeight
— первый параметр, который определяет минимальную высоту строки. Если значение больше нуля, то высота строки будет как минимум равна minimumLineHeight
.
maximumLineHeight
— второй параметр, который определяет максимальную высоту строки. Если значение больше нуля, то высота строки не превысит maximumLineHeight
.
lineHeightMultiple
— третий параметр, который определяет множитель высоты строки. Если значение больше нуля, то высота строки будет умножена на lineHeightMultiple
.
Высота строки зависит от всех трех параметров. Даже если вы установите слишком большое значение для lineHeightMultiple
, оно не превысит установленные значения minimumLineHeight
и maximumLineHeight
.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.allText().font(32).color([UIColor orangeColor]).ln(1).attach();
make.text(@"Github").lineHeight(0,0,4).mark([UIColor redColor]).attach();
make.text(@"Github").lineHeight(0,100,4).mark([UIColor blueColor]).attach();
make.text(@"Github").lineHeight(100,0,0).mark([UIColor greenColor]).attach();
make.text(@"Github").lineHeight(100,0,1).mark([UIColor blueColor]).attach();
make.text(@"Github").lineHeight(100,0,4).mark([UIColor redColor]).attach();
}];
paraSpacing позволяет указывать дополнительное пространство между параграфами, которое состоит из двух параметров: вертикального отступа сверху и снизу.```objc NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) { make.allText().font(32).color([UIColor orangeColor]).ln(1).attach(); make.text(@"GitHub").paraSpacing(20,20).mark([UIColor redColor]).attach(); make.text(@"GitHub").paraSpacing(20,30).mark([UIColor blueColor]).attach(); make.text(@"GitHub").paraSpacing(30,40).mark([UIColor greenColor]).attach(); make.text(@"GitHub").paraSpacing(40,50).mark([UIColor blueColor]).attach(); make.text(@"GitHub").paraSpacing(50,60).mark([UIColor redColor]).attach(); }];
<img src="https://github.com/hon-key/HKAttributedTextView/raw/master/Screenshots/paraSpacing.png" />
<p align="right"><a href="#indexes">назад</a></p>
### **выравнивание**
**Выравнивание** позволяет указывать выравнивание текста.
```objc
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.allText().font(32).color([UIColor orangeColor]).mark([UIColor greenColor]).ln(1).attach();
make.text(@"GitHub").выравнивание(NUDAliLeft).attach();
make.text(@"GitHub").выравнивание(NUDAliCenter).attach();
make.text(@"GitHub").выравнивание(NUDAliRight).attach();
}];
Отступ позволяет указывать отступы текста, где первый параметр определяет отступ слева, а второй — отступ справа.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.allText().font(17).color([UIColor orangeColor]).mark([UIColor blueColor]).ln(2).indent(30,20).attach();
make.text(@"GitHub Inc. is a web-based hosting service for version control using Git.").attach();
make.text(@"It is mostly used for computer code.").indent(60,0).attach();
make.text(@"It offers all of the distributed version control and source code management (SCM) functionality of Git as well as adding its own features.").indent(0,60).attach();
make.text(@"It provides access control and several collaboration features such as bug tracking, feature requests, task management, and wikis for every project.").attach();
}];
Отступ первой строки позволяет указывать отступ первой строки абзаца, который переопределяет отступ слева, установленный методом indent
.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.allText().font(17).color([UIColor orangeColor]).mark([UIColor blueColor]).ln(1).fl_headIndent(40).attach();
make.text(@"GitHub Inc. is a web-based hosting service for version control using Git. ").attach();
make.text(@"It is mostly used for computer code. ").attach();
make.text(@"It offers all of the distributed version control and source code management (SCM) functionality of Git as well as adding its own features.").attach();
make.text(@"It provides access control and several collaboration features such as bug tracking, feature requests, task management, and wikis for every project.").attach();
}];
Перенос строк позволяет указывать способ переноса строк.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.allText().font(17).color([UIColor orangeColor]).mark([UIColor blueColor]).ln(2).attach();
make.text(@"It is mostly used for computer code.").linebreak(NUDWord).attach();
make.text(@"It is mostly used for computer code.").linebreak(NUDChar).attach();
make.text(@"It is mostly used for computer code.").linebreak(NUDClip).attach();
make.text(@"It is mostly used for computer code.").linebreak(NUDTr_head).attach();
make.text(@"It is mostly used for computer code.").linebreak(NUDTr_tail).attach();
make.text(@"It is mostly used for computer code.").linebreak(NUDTr_middle).attach();
}];
Выделенный текст позволяет указывать стиль выделенного текста, передавая шаблон, можно определить свойства выделенного текста.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.textTemplate(@"Highlight").color([UIColor greenColor]).font(64).attach();
make.text(@"GitHub").font(64).color([UIColor blackColor]).highlighted(@"Highlight").attach();
}];
Одиночный клик позволяет указывать обратный вызов при одиночном клике на текст, этот атрибут имеет аналогичное действие, что и атрибут link
. Однако, в отличие от link
, область действия клика ограничивается только текстом, и вместе с методом highlight
, можно полностью настроить внешний вид клика.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.textTemplate(@"Highlight").color([UIColor greenColor]).font(64).attach();
make.text(@"GitHub").font(64).color([UIColor blackColor]).highlighted(@"Highlight").tap(self,@selector(linkHandler:)).attach();
}];
Начальная точка изображения позволяет указывать начальную точку изображения, важно отметить, что точка начала находится в левом нижнем углу изображения, на уровне базовой линии, то есть, точка отсчета совпадает с левым нижним углом, что отличается от системы координат UIView.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.allText().font(17).color([UIColor whiteColor]).attach();
make.text(@"Hi,").attach();
make.image(@"githubIcon").origin(0,0).size(100,100).attach();
make.text(@"GitHub").attach();
}];
nude.backgroundColor = [UIColor purpleColor];
Размер изображения позволяет указывать размер изображения, следует заметить, что layoutManager автоматически использует размер изображения из свойства UIImage.size, если размер не указан явно.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.allText().font(19).color([UIColor whiteColor]).attach();
make.text(@"wow").attach();
make.image(@"githubIcon").size(50,50).attach();
make.text(@"yeah").attach();
make.image(@"githubIcon").size(100,100).vertical(10).attach();
make.text(@"right").attach();
}];
nude.backgroundColor = [UIColor purpleColor];
Вертикальное смещение изображения позволяет указывать вертикальное смещение изображения, фактически это удобный метод для изменения y-координаты точки начала, поскольку изменение x-координаты игнорируется.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.allText().font(19).color([UIColor whiteColor]).attach();
make.text(@"wow").attach();
make.image(@"githubIcon").size(100,100).attach();
make.text(@"yeah").attach();
make.image(@"githubIcon").size(100,100).vertical(10).attach();
make.text(@"right").attach();
}];
nude.backgroundColor = [UIColor purpleColor];
Горизонтальное выравнивание изображения определяет горизонтальное выравнивание изображения, передайте NUDAlignLeft для этого, условием является то, что компонент image должен располагаться в отдельной строке.
NudeIn *nude = [NudeIn make:^(NUDTextMaker *make) {
make.allText().font(19).color([UIColor whiteColor]).attach();
make.allImage().size(100,100).ln(1).attach();
make.image(@"githubIcon").выравнивание(NUDAliLeft).attach();
make.text(@"GitHub").выравнивание(NUDAliCenter).ln(1).attach();
make.image(@"githubIcon").выравнивание(NUDAliCenter).attach();
make.text(@"GitHub").выравнивание(NUDAliCenter).ln(1).attach();
make.image(@"githubIcon").выравнивание(NUDAliRight).attach();
make.text(@"GitHub").выравнивание(NUDAliCenter).attach();
}];
nude.backgroundColor = [UIColor purpleColor];
NudeIn распространяется под лицензией MIT. Подробнее см. ЛИЦЕНЗИЮ.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )