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

OSCHINA-MIRROR/leeszi-CellLayout

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 4.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 02.12.2024 21:37 47a175c

CellLayout

CI Status

Version

License

Platform

说明

В разработке iOS UI является довольно трудоёмкой задачей, а появление storyboard может значительно повысить производительность и не вызвать серьёзных проблем с производительностью. Однако использование storyboard всё ещё недостаточно удобно, и этот компонент предназначен для проектирования на основе TableView.

Примеры

  1. Перетащите желаемый пользовательский интерфейс в storybaord и установите информацию об автоматическом макете, как показано на рисунке:

storybaord

  1. Создайте свою ViewModel, код выглядит следующим образом:
#import "DemoViewModel.h"
#import "CellLayoutStorage.h"
#import "CellLayoutManager.h"
#import "CellLayoutSection.h"
#import "DemoTableViewCell.h"
#import <ReactiveCocoa/ReactiveCocoa.h>

#import <ReactiveCocoa/RACEXTScope.h>
#import "CellLayoutTableHeader.h"

@implementation DemoViewModel

- (instancetype)init {
    self = [super init];
    if (self) {
        self.dataSource = @[
                            @"飞鸟集》是印度诗人泰戈尔的代表作之一,也是世界上最杰出的诗集之一,它包括325首清丽的无标题小诗。白昼和黑夜、溪流和海洋、自由和背叛,都在泰戈尔的笔下合二为一,短小的语句道出了深刻的人生哲理,引领世人探寻真理和智慧的源泉。",
                            @"《飞鸟集》创作于1913年,初版于1916年完成。《飞鸟集》其中的一部分由诗人译自自己的孟加拉文格言诗集《碎玉集》(1899),另外一部分则是诗人1916年造访日本时的即兴英文诗作。诗人在日本居留三月有余,不断有淑女求其题写扇面或纪念册。诗人曾经盛赞日本俳句的简洁,他的《飞鸟集》显然受到了这种诗体的影响。[2] "
                            ];

        self.viewDidLoad = ^(UIViewController *parent) {
            NSLog(@"view did load");
        };
    }
    return self;
}

//通过实现方法里面的布局信息,来定制自己的UI
- (void)buildLayoutStorage {

    @weakify(self);

    CellLayoutStorage *storage = [[CellLayoutStorage alloc] init];


    CellLayoutTableHeader *header = [[CellLayoutTableHeader alloc] init];
    header.height = 500;
    header.configHeader = ^(UIView *view, UIViewController *parent){
        view.backgroundColor = [UIColor colorWithRed:0.6824 green:0.1091 blue:0.1599 alpha:1.0];
    };

    storage.tableHeader = header;

    [storage newSectionWithTitle:@"文章标题" headerHeight:19 footerHeight:1];

    [storage newLayoutManagerWithIdentifier:@"DemoTableViewCell"];

    storage.layoutManager.configCell = ^(__weak UITableViewCell *cell, UIViewController *parent) {
        @strongify(self);
        DemoTableViewCell *c = (DemoTableViewCell *)cell;
        c.dynamicLabel.text = self.dataSource[0];
    };

    [storage newLayoutManagerWithIdentifier:@"DemoTableViewCell"];
    storage.layoutManager.configCell = ^(__weak UITableViewCell *cell, UIViewController *parent) {
        @strongify(self);
        DemoTableViewCell *c = (DemoTableViewCell *)cell;
        c.dynamicLabel.text = self.dataSource[1];
    };

    self.storage = storage;
}

@end
  1. Затем напрямую создайте LayoutController, используя следующий код:
DemoViewModel *model = [[DemoViewModel alloc] init];
 LayoutController *controller = [LayoutController instantiateWithStoryboardName:@"Table" viewModel:model];
 [self.navigationController pushViewController:controller animated:YES];

Требования

Требуется iOS 7.0 или более поздняя версия

Установка

CellLayout доступен через CocoaPods. Чтобы установить его, просто добавьте следующую строку в свой Podfile:

pod "CellLayout"

Автор

LiuZhen, lazy66@me.com

Лицензия

CellLayout распространяется по лицензии MIT. Дополнительную информацию см. в файле LICENSE.

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/leeszi-CellLayout.git
git@api.gitlife.ru:oschina-mirror/leeszi-CellLayout.git
oschina-mirror
leeszi-CellLayout
leeszi-CellLayout
master