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

OSCHINA-MIRROR/mirrors-ufkit

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

Эффект

Здесь можно вставить изображение

Требования

  • iOS 8.0 или более поздняя версия

  • Xcode 11.0 или более поздняя версия

1. Форма UFFormView

UFFormView *formView = [UFFormView makeFormView:^(UFFormViewMaker * _Nonnull make) {
        // TODO: Настройка стиля формы
    }];

или

UFFormView *formView = [[UFFormView alloc] init];
// TODO: Настройка стиля формы

2. Стили формы

1. Что такое стиль?

Стиль — это настройка набора свойств UI-контроллеров, таких как шрифт, цвет, выравнивание и т.д. Включает в себя: текстовый стиль UFTextStyle, заголовочный стиль UFRowTitleStyle, стиль кнопки для отправки кода подтверждения UFMobileCodeStyle, стиль группы переключателей UFRadioGroupStyle, стиль группы формы UFSectionStyle и т.д.

2. Как создать стиль формы?
  1. Текстовый стиль
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;  // Установить выравнивание заголовка
  1. Стиль кода подтверждения телефона
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"];   // Изображение активного переключателя
3. Унифицированное добавление стилей формы
  1. Добавление стиля заголовка слева
[UFFormView makeFormView:^(UFFormViewMaker * _Nonnull make) {
        make
        .titleStyle([UFRowTitleStyle makeTitleStyle:^(UFRowTitleStyleMaker * _Nonnull make) {                                
	// TODO: Установите стиль заголовка (см. как создать стиль заголовка)
        }]);
    }];    

или

UFRowTitleStyle *titleStyle = [[UFRowTitleStyle alloc] init];
// TODO: Установите стиль заголовка (см. как создать стиль заголовка)
formView.titleStyle = titleStyle;    
  1. Установка стиля значения справа
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;

3. Группировка UFSection

1. Создание группы
UFSection *section = [UFSection makeSection:^(UFSectionMaker * _Nonnull make) {

    }];

или

UFSection *section = [[UFSection alloc] init];
2. Установка стиля группы
  1. Унифицированное установление стилей форм внутри группы
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;
  1. Установка стиля заголовка и подвала```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;
3. Добавление группы в форму
UFFormView *formView = [UFFormView makeFormView:^(UFFormViewMaker * _Nonnull make) {
        make
        .addSection([UFSection makeSection:^(UFSectionMaker * _Nonnull make) {
            // TODO: Настройка стиля группы
        }]);
    }];

или

[formView addSection:section];

4. Строка UFRow

1. Подклассы```objective-c

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**

![Здесь можно вставить изображение](https://img-blog.csdnimg.cn/20190830145143477.png)

```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**

![Здесь можно вставить изображение](https://img-blog.csdnimg.cn/20190830145302242.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTQ3MzAyNDU=,size_16,color_FFFFFF,t_70)

```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 для настройки
}];

![Здесь можно вставить изображение](https://img-blog.csdnimg.cn/20190830145359629.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTQ3MzAyNDU=,size_16,color_FFFFFF,t_70)

```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"); }];


![Здесь можно вставить изображение](https://img-blog.csdnimg.cn/20190830145532511.png)

```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 (выкл)

3. Как создать пользовательскую строку
  1. Наследуйте UFRow для создания подкласса

  2. Наследуйте UFRowCell для создания подкласса

  3. Регистрируйте строку и ячейку в formView

UFFormView *formView = [UFFormView makeFormView:^(UFFormViewMaker * _Nonnull make) {
            make
            .registerRow([CustomRow class], [CustomRowCell class]);
            }];
4. Как найти строку?

// Поиск по имени
UFRow *row = [formView findRowByName:@"имя"];

// Поиск по позиции, например, 1-я группа, 4-я строка
UFRow *row = [formView findRowInRange:UFMakeRange(0, 3)];
5. Добавление строки в группу
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;
                    });
            }];

5. Подача1. Добавление кнопки подачи

Здесь можно добавить изображение

Здесь можно добавить изображение

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);
    }];
  1. Получение данных формы
[formView toDictionary];

6. Зависимости

'Masonry', '~> 1.1.0'

'SDWebImage', '~> 5.0.6'

'IQKeyboardManager', '~> 6.3.0'

7. Установка

pod 'UFKit'

8. Контактная информация

QQ:893419255 (Пожалуйста, укажите UFKit)


Версии

  • 1.1.17

    Поддержка международных языков (китайский, тайваньский, английский)

  • 1.2.0

    Поддержка адаптивной высоты, темной темы

Поддержка

Здесь можно добавить изображение Здесь можно добавить изображение

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

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

Введение

UFKit, фреймворк для форм iOS, позволяет быстро интегрировать формы в приложения. Развернуть Свернуть
Отмена

Обновления

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

Участники

все

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

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