_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __
/ / / / / _ _ _ / / / ╱ ╱ /__/ /_ _ _ _ _ _/
/ / / / / / / / ╱ ╱ _ _ / /
/ / / / / /_ _ _ / / ╱ ╱ / / / /
/ / / / / _ _ _ / / / \ \ / / / /
/ /_ __/ / / / / / \ \ / / / /
\ _ _ _ _ / /__/ /__/ \__\ /__/ /__/
iOS 8.0 или более поздняя версия
Xcode 11.0 или более поздняя версия
UFFormView *formView = [UFFormView makeFormView:^(UFFormViewMaker * _Nonnull make) {
// TODO: Настройка стиля формы
}];
или
UFFormView *formView = [[UFFormView alloc] init];
// TODO: Настройка стиля формы
Стиль — это настройка набора свойств UI-контроллеров, таких как шрифт, цвет, выравнивание и т.д. Включает в себя: текстовый стиль UFTextStyle, заголовочный стиль UFRowTitleStyle, стиль кнопки для отправки кода подтверждения UFMobileCodeStyle, стиль группы переключателей UFRadioGroupStyle, стиль группы формы UFSectionStyle и т.д.
UFTextStyle *textStyle = [UFTextStyle makeTextStyle:^(UFRowTextStyleMaker * _Nonnull make) {
make
.color([UIColor redColor]) // Установка цвета текста
.font([UIFont systemFontOfSize:14]) // Установка шрифта текста
.textAlignment(NSTextAlignmentLeft); // Установка выравнивания текста
}];
или```objective-c UFTextStyle *textStyle = [[UFTextStyle alloc] init]; textStyle.color = [UIColor redColor]; // Установка цвета текста textStyle.font = [UIFont systemFontOfSize:14]; // Установка шрифта текста textStyle.textAlignment = NSTextAlignmentLeft; // Установка выравнивания текста
```objective-c
UFRowTitleStyle *titleStyle = [UFRowTitleStyle makeTitleStyle:^(UFRowTitleStyleMaker * _Nonnull make) {
make
.width(90) // Установка ширины заголовка
.color([UIColor redColor]) // Установка цвета заголовка
.font([UIFont systemFontOfSize:14]) // Установка шрифта заголовка
.textAlignment(NSTextAlignmentLeft); // Установка выравнивания заголовка
}];
``` или
```objective-c
UFRowTitleStyle *titleStyle = [[UFTextStyle alloc] init];
titleStyle.width = 90; // Установить ширину заголовка
titleStyle.color = [UIColor redColor]; // Установить цвет заголовка
titleStyle.font = [UIFont systemFontOfSize:14]; // Установить шрифт заголовка
titleStyle.textAlignment = NSTextAlignmentLeft; // Установить выравнивание заголовка
UFMobileCodeStyle *codeStyle = [UFMobileCodeStyle makeMobileCodeStyle:^(UFMobileCodeStyleMaker * _Nonnull make) {
make
.cornerRadius(10) // Установить радиус кнопки
.backgroundColor([UIColor redColor]) // Установить цвет фона кнопки
.separatorColor([UIColor lightGrayColor]) // Установить цвет разделителя между полем ввода и кнопкой
.color([UIColor whiteColor]) // Установить цвет текста кнопки
.font([UIFont systemFontOfSize:14]) // Установить шрифт текста кнопки
.textAlignment(NSTextAlignmentLeft); // Установить выравнивание текста кнопки
}];
``````objective-c
UFMobileCodeStyle *codeStyle = [[UFMobileCodeStyle alloc] init];
codeStyle.cornerRadius = 10; // Установить радиус кнопки
codeStyle.backgroundColor = [UIColor redColor]; // Установить цвет фона кнопки
codeStyle.separatorColor = [UIColor lightGrayColor]; // Установить цвет разделителя между полем ввода и кнопкой
codeStyle.color = [UIColor whiteColor]; // Установить цвет текста кнопки
codeStyle.font = [UIFont systemFontOfSize:14]; // Установить шрифт текста кнопки
codeStyle.textAlignment = NSTextAlignmentLeft; // Установить выравнивание текста кнопки
```4. Стиль одиночного переключателя
```objective-c
UFRadioGroupStyle *radioGroupStyle = [UFRadioGroupStyle makeRadioGroupStyle:^(UFRowRadioGroupStyleMaker * _Nonnull make) {
make
.image([UIImage imageNamed:@"radio_checked"]) // Изображение неактивного переключателя
.selectedImage([UIImage imageNamed:@"radio_unchecked"]); // Изображение активного переключателя
}];
или
UFRadioGroupStyle *radioGroupStyle = [[UFRadioGroupStyle alloc] init];
radioGroupStyle.image = [UIImage imageNamed:@"radio_checked"]; // Изображение неактивного переключателя
radioGroupStyle.selectedImage = [UIImage imageNamed:@"radio_unchecked"]; // Изображение активного переключателя
[UFFormView makeFormView:^(UFFormViewMaker * _Nonnull make) {
make
.titleStyle([UFRowTitleStyle makeTitleStyle:^(UFRowTitleStyleMaker * _Nonnull make) {
// TODO: Установите стиль заголовка (см. как создать стиль заголовка)
}]);
}];
или
UFRowTitleStyle *titleStyle = [[UFRowTitleStyle alloc] init];
// TODO: Установите стиль заголовка (см. как создать стиль заголовка)
formView.titleStyle = titleStyle;
UFFormView *formView = [UFFormView makeFormView:^(UFFormViewMaker * _Nonnull make) {
make
.valueStyle([UFTextStyle makeTextStyle:^(UFRowTextStyleMaker * _Nonnull make) {
// TODO: Установите стиль значения (см. как создать стиль текста)
}]);
}];
или
UFTextStyle *valueStyle = [[UFTextStyle alloc] init];
// TODO: Установите стиль значения (см. как создать стиль текста)
formView.valueStyle = valueStyle;
```##### 4. Унифицированное установление высоты строк
```objective-c
UFFormView *formView = [UFFormView makeFormView:^(UFFormViewMaker * _Nonnull make) {
make
.rowHeight(50);
}];
или
formView.rowHeight = 50;
UFSection *section = [UFSection makeSection:^(UFSectionMaker * _Nonnull make) {
}];
или
UFSection *section = [[UFSection alloc] init];
UFSection *section = [UFSection makeSection:^(UFSectionMaker * _Nonnull make) {
make
// Установка стиля заголовка
.titleStyle([UFRowTitleStyle makeTitleStyle:^(UFRowTitleStyleMaker * _Nonnull make) { // TODO: Установите стиль заголовка (см. как создать стиль заголовка)
}])
// Установка стиля значения
.valueStyle([UFTextStyle makeTextStyle:^(UFRowTextStyleMaker * _Nonnull make) {
// TODO: Установите стиль значения (см. как создать стиль текста)
}]);
}];
или
UFSection *section = [[UFSection alloc] init];
// Установка стиля заголовка
UFRowTitleStyle *titleStyle = [[UFRowTitleStyle alloc] init];
// TODO: Установите стиль заголовка (см. как создать стиль заголовка)
section.titleStyle = titleStyle;
// Установка стиля значений
UFTextStyle *valueStyle = [[UFTextStyle alloc] init];
// TODO: Установите стиль значений (см. как создать текстовый стиль)
section.valueStyle = valueStyle;
Установка стиля заголовка и подвала```objective-c [UFSection makeSection:^(UFSectionMaker * _Nonnull make) { make // Установка стиля заголовка .headerStyle([UFSectionStyle makeSectionStyle:^(UFSectionStyleMaker * _Nonnull make) { make .height(30) // Установка высоты заголовка .text(@"Заголовок") // Установка текста заголовка .color([UIColor lightGrayColor]) // Установка цвета текста заголовка .font([UIFont systemFontOfSize:12]) // Установка шрифта текста заголовка .numberOfLines(0); // Установка количества строк текста заголовка }])
// Установка стиля подвала
.footerStyle([UFSectionStyle makeSectionStyle:^(UFSectionStyleMaker * _Nonnull make) { make .height(30) // Установка высоты подвала .text(@"Подвал") // Установка текста подвала .color([UIColor lightGrayColor]) // Установка цвета текста подвала .font([UIFont systemFontOfSize:12]) // Установка шрифта текста подвала .numberOfLines(0); // Установка количества строк текста подвала }]); }];
```objective-c
UFSection *section = [[UFSection alloc] init];
// Установка стиля заголовка
UFSectionStyle *headerStyle = [[UFSectionStyle alloc] init];
headerStyle.height = 30; // Установка высоты заголовка
headerStyle.text = @"Заголовок"; // Установка текста заголовка
headerStyle.color = [UIColor lightGrayColor]; // Установка цвета текста заголовка
headerStyle.font = [UIFont systemFontOfSize:12]; // Установка шрифта текста заголовка
headerStyle.numberOfLines = 0; // Установка количества строк текста заголовка
section.headerStyle = headerStyle;
// Установка стиля подвала
UFSectionStyle *footerStyle = [[UFSectionStyle alloc] init];
footerStyle.height = 30; // Установка высоты подвала
footerStyle.text = @"Подвал"; // Установка текста подвала
footerStyle.color = [UIColor lightGrayColor]; // Установка цвета текста подвала
footerStyle.font = [UIFont systemFontOfSize:12]; // Установка шрифта текста подвала
footerStyle.numberOfLines = 0; // Установка количества строк текста подвала
section.footerStyle = footerStyle;
UFFormView *formView = [UFFormView makeFormView:^(UFFormViewMaker * _Nonnull make) {
make
.addSection([UFSection makeSection:^(UFSectionMaker * _Nonnull make) {
// TODO: Настройка стиля группы
}]);
}];
или
[formView addSection:section];
UFRow // Строка UFSubtitleRow // Подзаголовок UFTextFieldRow // Однострочное текстовое поле UFDatePickerRow // Выбор даты UFPickerViewRow // Выбор одного элемента UFMultiplePickerViewRow // Выбор нескольких элементов UFAreaPickerRow // Выбор адреса из трех уровней UFCustomPickerViewRow // Пользовательский выбор UFTextViewRow // Многострочное текстовое поле UFMobileCodeRow // Код подтверждения для мобильного телефона UFAvatarRow // Аватар UFRadioGroupRow // Одиночный выбор UFSwitchRow // Переключатель UFPlateNumberRow // Номерной знак автомобиля
**1) UFRow**! [Здесь можно вставить изображение](https://img-blog.csdnimg.cn/20190830145004771.png)```objective-c
UFRow *row = [UFRow makeRow:^(UFRowMaker * _Nonnull make) {
make
. height(50) // Устанавливает высоту строки
. image([UIImage imageNamed:@"icon"]) // Устанавливает иконку
. title(@"Имя") // Устанавливает заголовок
. titleStyle([UFRowTitleStyle makeTitleStyle:^(UFRowTitleStyleMaker * _Nonnull make) {
make
. width(100) // Устанавливает ширину заголовка для выравнивания формы
. color([UIColor blackColor]) // Устанавливает цвет заголовка
. font([UIFont systemFontOfSize:15]) // Устанавливает шрифт заголовка
. textAlignment(NSTextAlignmentLeft); // Устанавливает выравнивание заголовка
}]) // Устанавливает стиль заголовка
. value(@"Чжан Ли") // Устанавливает значение по умолчанию
. valueStyle([UFTextStyle makeTextStyle:^(UFRowTextStyleMaker * _Nonnull make) {
make
. color([UIColor blackColor]) // Устанавливает цвет значения
. font([UIFont systemFontOfSize:15]) // Устанавливает шрифт значения
. textAlignment(NSTextAlignmentRight); // Устанавливает выравнивание значения
}]) // Устанавливает стиль значения
. valueDidChanged(^(__kindof UFRow * _Nonnull row, NSString * _Nonnull value) {
// Отслеживает изменения значения
})
. accessoryType(UFRowAccessoryDisclosureIndicator); // Устанавливает тип вспомогательного элемента после строки, например, стрелку или галочку
}];
``````swift
accessoryImage([UIImage imageNamed:@"arrow"]) // Устанавливает пользовательский вспомогательный элемент изображения после строки, например, стрелку или галочку
. rowDidSelected(^(__kindof UFRow * _Nonnull row) {
// Обрабатывает событие выбора строки
})
. name(@"name"); // Устанавливает имя строки, можно рассматривать как ключ поля, уникальное значение
}];
Примечание: Для выравнивания правого края строки используйте UFRowAccessorySpace для заполнения.2. UFSubtitleRow
UFSubtitleRow *subtitleRow = [UFSubtitleRow makeSubtitleRow:^(UFSubtitleRowMaker * _Nonnull make) {
make
.subtitle(@"Рекомендуем использовать Alipay") // Устанавливаем подзаголовок
.subtitleStyle([UFRowTitleStyle makeTitleStyle:^(UFRowTitleStyleMaker * _Nonnull make) {
make
.width(140) // Устанавливаем ширину подзаголовка
.font([UIFont systemFontOfSize:12]) // Устанавливаем шрифт подзаголовка
.color([UIColor lightGrayColor]); // Устанавливаем цвет подзаголовка
}]) // Устанавливаем стиль подзаголовка
.accessoryImage([UIImage imageNamed:@"checked"]) // Устанавливаем изображение в качестве вспомогательного элемента
.height(80) // Устанавливаем высоту строки
.image([UIImage imageNamed:@"alipay"]) // Устанавливаем иконку
.title(@"Alipay") // Устанавливаем заголовок
.name(@"pay");
// Другие свойства не описываются подробно, см. UFRow для примера
}];
3. UFAvatarRow
```objective-c
UFAvatarRow *avatarRow = [UFAvatarRow makeAvatarRow:^(UFAvatarRowMaker * _Nonnull make) {
make
.cornerRadius(30) // Устанавливаем радиус закругления для аватара, который определяет высоту строки
.avatarImage([UIImage imageNamed:@"touxiang"]) // Устанавливаем изображение аватара по умолчанию, которое используется как запасное изображение при отсутствии или ошибке загрузки изображения из сети
.avatarDidSelected(^(__kindof UFAvatarRow * _Nonnull row, UIImageView * _Nonnull avatarView) {
// Обработка события нажатия на аватар
})
.title(@"Аватар")
.value(@"http://img0.imgtn.bdimg.com/it/u=2572957358,1108684168&fm=26&gp=0.jpg") // Устанавливаем изображение из сети
.accessoryType(UFRowAccessorySpace)
.name(@"аватар");
}];
}];
Примечание: UFKit предоставляет методы выбора изображений для UIViewController.```objective-c [self ufk_pickerImageForResult:^(UIImage * _Nonnull image) {
}];
**(4)UFRadioGroupRow**

```objective-c
UFRadioGroupRow *radioGroupRow = [UFRadioGroupRow makeRadioGroupRow:^(UFRadioGroupRowMaker * _Nonnull make) {
make
.itemArray(@[@"Муж",@"Жен"]) // Установка опций
.editable(YES) // Разрешение на редактирование
.radioGroupStyle([UFRadioGroupStyle makeRadioGroupStyle:^(UFRowRadioGroupStyleMaker * _Nonnull make) {
make
.image([UIImage imageNamed:@"rg_unchecked"]) // Установка изображения по умолчанию
.selectedImage([UIImage imageNamed:@"rg_checked"]); // Установка изображения при выборе
}])
.title(@"Пол")
.value(@"Муж")
.accessoryType(UFRowAccessorySpace)
.name(@"gender");
// Другие свойства не описываются подробно, см. UFRow для настройки
}];
(5)UFTextFieldRow
```objective-c
UFTextFieldRow *textFieldRow = [UFTextFieldRow makeTextFieldRow:^(UFTextFieldRowMaker * _Nonnull make) {
make
.limitType(UFInputLimitTypeMobile) // Установка ограничений на ввод
.editable(YES) // Разрешение на редактирование
.maxLength(11) // Установка максимальной длины ввода, может не работать после установки limitType
.keyboardType(UIKeyboardTypeDefault) // Установка типа клавиатуры, может не работать после установки limitType
.secureTextEntry(NO) // Безопасный ввод
.canPerformAction(YES) // Разрешение на выполнение действий (например, копирование, вставка)
.placeholder(@"Введите") // Значок ввода, если не установлен, будет использоваться заголовок "Введите"
.barTintColor([UIColor blackColor]) // Цвет панели клавиатуры
.title(@"Контактная информация")
.accessoryType(UFRowAccessorySpace)
.name(@"mobile");
// Другие свойства не описываются подробно, см. UFRow для настройки
}];
Перевод текста внутри метода `placeholder`:
```objective-c
UFTextFieldRow *textFieldRow = [UFTextFieldRow makeTextFieldRow:^(UFTextFieldRowMaker * _Nonnull make) {
make
.limitType(UFInputLimitTypeMobile) // Установка ограничений на ввод
.editable(YES) // Разрешение на редактирование
.maxLength(11) // Установка максимальной длины ввода, может не работать после установки limitType
.keyboardType(UIKeyboardTypeDefault) // Установка типа клавиатуры, может не работать после установки limitType
.secureTextEntry(NO) // Безопасный ввод
.canPerformAction(YES) // Разрешение на выполнение действий (например, копирование, вставка)
.placeholder(@"Введите") // Значок ввода, если не установлен, будет использоваться заголовок "Введите"
.barTintColor([UIColor blackColor]) // Цвет панели клавиатуры
.title(@"Контактная информация")
.accessoryType(UFRowAccessorySpace)
.name(@"mobile");
// Другие свойства не описываются подробно, см. UFRow для настройки
}];
Перевод текста внутри метода title
:
UFTextFieldRow *textFieldRow = [UFTextFieldRow makeTextFieldRow:^(UFTextFieldRowMaker * _Nonnull make) {
make
.limitType(UFInputLimitTypeMobile) // Установка ограничений на ввод
.editable(YES) // Разрешение на редактирование
.maxLength(11) // Установка максимальной длины ввода, может не работать после установки limitType
.keyboardType(UIKeyboardTypeDefault) // Установка типа клавиатуры, может не работать после установки limitType
.secureTextEntry(NO) // Безопасный ввод
.canPerformAction(YES) // Разрешение на выполнение действий (например, копирование, вставка)
.placeholder(@"Введите") // Значок ввода, если не установлен, будет использоваться заголовок "Введите"
.barTintColor([UIColor blackColor]) // Цвет панели клавиатуры
.title(@"Контактная информация")
.accessoryType(UFRowAccessorySpace)
.name(@"mobile");
// Другие свойства не описываются подробно, см. UFRow для настройки
}];
```***Примечание:*** **UFKit** предоставляет следующие стили ограничений ввода, чтобы ограничить вводимые данные в поле ввода.```objective-c
typedef NS_ENUM(NSUInteger, UFInputLimitType) {
UFInputLimitTypeNone = 0, // Без ограничений
UFInputLimitTypeMobile, // Номер телефона
UFInputLimitTypeEmail, // Электронная почта
UFInputLimitTypeIdCard, // Номер паспорта
UFInputLimitTypeNumbers, // Числа
UFInputLimitTypeLetters, // Буквы
UFInputLimitTypeCapitalLetters, // Заглавные буквы
UFInputLimitTypeAlphanumeric, // Буквы и цифры
UFInputLimitTypeFloat, // Число с плавающей точкой
UFInputLimitTypeMoney, // Сумма (с двумя знаками после запятой)
};
(5)UFMobileCodeRow
UFMobileCodeRow *mobileCodeRow = [UFMobileCodeRow makeCodeRow:^(UFCodeRowMaker * _Nonnull make) {
make
.codeStyle([UFMobileCodeStyle makeMobileCodeStyle:^(UFMobileCodeStyleMaker * _Nonnull make) {
make
.backgroundColor([UIColor whiteColor]) // Установка цвета фона кнопки
.cornerRadius(5) // Установка радиуса кнопки
.separatorColor([UIColor lightGrayColor]); // Установка цвета разделителя между полем ввода и кнопкой
// Другие свойства не описываются, см. UFRowTextStyleMaker
}])
.codeDidClicked(^(__kindof UFMobileCodeRow * _Nonnull row, UIButton * _Nonnull button) {
// Обработка события нажатия на кнопку "Получить код"
})
.maxLength(4)
.limitType(UFInputLimitTypeNumbers)
.title(@"Код")
.accessoryType(UFRowAccessorySpace)
.name(@"code");
}];
``` // Другие свойства не описываются, см. UFTextFieldRow
}];
Примечание: UFKit предоставляет метод обратного отсчета для UIButton
[button ufk_countDown:60]; // 60-секундный обратный отсчет
6. UFPickerViewRow
```objective-c
UFPickerViewRow *pickerViewRow = [UFPickerViewRow makePickerViewRow:^(UFPickerViewRowMaker * _Nonnull make) {
make
.itemArray(@[@"Общее управление",@"Администрация",@"Отдел кадров",@"Финансовый отдел",@"Продукты",@"Технологии",@"Операции"]) // Установка опций
.title(@"Отдел")
.value(@"Технологии")
.accessoryType(UFRowAccessoryDisclosureIndicator)
.name(@"org");
}];
**7. UFAreaPickerRow**

```objective-c
UFAreaPickerRow *areaPickerRow = [UFAreaPickerRow makeAreaPickerRow:^(UFAreaPickerRowMaker * _Nonnull make) {
make
.areaSeparator(@",") // разделитель между провинциями, городами и районами
.title(@"Адрес")
.accessoryType(UFRowAccessoryDisclosureIndicator)
.name(@"address");
// другие атрибуты не описываются подробно, см. UFPickerViewRow настройки
}];
8. UFCustomPickerViewRow
```objective-c
UFCustomPickerViewRow *customPickerRow = [UFCustomPickerViewRow makeCustomPickerViewRow:^(UFCustomPickerViewRowMaker * _Nonnull make) {
make
.delegate(weakSelf) // установка делегата
.valueDidSelected(^(__kindof UFCustomPickerViewRow * _Nonnull row, UITextField * _Nonnull textField) {
// событие подтверждения после выбора
})
.title(@"выборник")
.name(@"custom")
.accessoryType(UFRowAccessoryDisclosureIndicator);
}];
**UFCustomPickerViewRowDelegate**
```objective-c
// количество колонок
- (NSInteger)numberOfComponentsInPickerViewRow:(UFCustomPickerViewRow *)pickerViewRow;
// количество строк в каждой колонке
- (NSInteger)pickerViewRow:(UFCustomPickerViewRow *)pickerViewRow numberOfRowsInComponent:(NSInteger)component;
// заголовок строки
- (NSString *)pickerViewRow:(UFCustomPickerViewRow *)pickerViewRow titleForRow:(NSInteger)row forComponent:(NSInteger)component;
// обработчик выбора строки
- (void)pickerViewRow:(UFCustomPickerViewRow *)pickerViewRow didSelectRow:(NSInteger)row inComponent:(NSInteger)component;
9. UFMultiplePickerViewRow
```objective-c
UFMultiplePickerViewRow *multiplePickerViewRow = [UFMultiplePickerViewRow makeMultiplePickerViewRow:^(UFMultiplePickerViewRowMaker * _Nonnull make) {
make
.itemArray(@[@"смотреть фильмы",@"путешествовать",@"читать книги",@"играть в игры",@"баскетбол",@"футбол",@"другое"]) // Установка опций
.title(@"интересы")
.value(@"играть в игры,другое")
.accessoryType(UFRowAccessoryDisclosureIndicator)
.name(@"hobby");
// Другие атрибуты не будут подробно описаны, см. UFTextFieldRow для настройки
}];

```objective-c
UFDatePickerRow *datePickerRow = [UFDatePickerRow makeDatePickerRow:^(UFDatePickerRowMaker * _Nonnull make) {
make
.minimumDate(@"минимальная дата") // Минимальная дата
.maximumDate(@"максимальная дата") // Максимальная дата
.datePickerMode(UIDatePickerModeDate) // Режим выбора даты
.dateFormat(@"yyyy-MM-dd") // Формат даты
.title(@"день рождения")
.value(@"2016-12-12")
.accessoryType(UFRowAccessoryDisclosureIndicator)
.name(@"birthday");
// Другие атрибуты не будут подробно описаны, см. UFTextFieldRow для настройки
}];
(11)UFPlateNumberRow
UFPlateNumberRow *plateNumberRow = [UFPlateNumberRow makePlateNumberRow:^(UFPlateNumberRowMaker * _Nonnull make) {
make
.title(@"номерной знак")
.value(@"лу А12345")
.accessoryType(UFRowAccessorySpace)
.name(@"plate");
// Другие атрибуты не будут подробно описаны, см. UFTextFieldRow для настройки
}];
(12)UFTextViewRow```objective-c
UFTextViewRow *textViewRow = [UFTextViewRow makeTextViewRow:^(UFTextViewRowMaker * _Nonnull make) {
make
.title(@"Personal Description")
.value(@"Apple Inc. is an American high-tech company. It was founded by Steve Jobs, Steve Wozniak, and Ronald Wayne on April 1, 1976. The company's headquarters are located in Cupertino, California.")
.accessoryType(UFRowAccessorySpace)
.name(@"description");
}];

```objective-c
UFSwitchRow *switchRow = [UFSwitchRow makeSwitchRow:^(UFSwitchRowMaker * _Nonnull make) {
make
.tintColor([UIColor redColor]) // Установка цвета переключателя
.title(@"Не беспокоить")
.value(SWITCH_ON)
.accessoryType(UFRowAccessorySpace)
.valueDidChanged(^(__kindof UFRow * _Nonnull row, NSString * _Nonnull value) {
// Обработка события переключателя
})
.name(@"разрешить");
}];
Примечание: UFKit предоставляет константы SWITCH_ON (вкл) и SWITCH_OFF (выкл)
Наследуйте UFRow для создания подкласса
Наследуйте UFRowCell для создания подкласса
Регистрируйте строку и ячейку в formView
UFFormView *formView = [UFFormView makeFormView:^(UFFormViewMaker * _Nonnull make) {
make
.registerRow([CustomRow class], [CustomRowCell class]);
}];
// Поиск по имени
UFRow *row = [formView findRowByName:@"имя"];
// Поиск по позиции, например, 1-я группа, 4-я строка
UFRow *row = [formView findRowInRange:UFMakeRange(0, 3)];
UFSection *section = [UFSection makeSection:^(UFSectionMaker * _Nonnull make) {
make
.addRow(/*ваша строка*/);
}];
UFSection *section = [UFSection makeSection:^(UFSectionMaker * _Nonnull make) {
make
.addRowWithBlock(^__kindof UFRow * _Nonnull{
// ваша строка
UFRow *row = [[UFRow alloc] init];
return row;
});
}];
UFActionButton *submitButton = [UFActionButton makeActionButton:^(UFActionButtonMaker * _Nonnull make) {
make
.titleForState(@"Отправить", UIControlStateNormal)
.titleColorForState([UIColor whiteColor], UIControlStateNormal)
.cornerRadius(22)
.backgroundColor([UIColor redColor])
.actionButtonClick(^(UFActionButton * _Nonnull button) {
// Обработка события отправки
});
}];
[UFFormView makeFormView:^(UFFormViewMaker * _Nonnull make) {
make
.addSubmitButton(submitButton)
.addCancelButton(cancelButton);
}];
[formView toDictionary];
'Masonry', '~> 1.1.0'
'SDWebImage', '~> 5.0.6'
'IQKeyboardManager', '~> 6.3.0'
pod 'UFKit'
QQ:893419255 (Пожалуйста, укажите UFKit)
Поддержка международных языков (китайский, тайваньский, английский)
Поддержка адаптивной высоты, темной темы
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )