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

OSCHINA-MIRROR/wangmchn-WMPageController

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

WMPageController: введение на китайском языке

https://github.com/wangmchn/WMPageController/blob/master/README_zh-CN.md

Платформа

Лицензия

Версия CocoaPods

Простое решение для контроллеров страниц, таких как NetEase News.

Обзор

Журнал изменений

Дополнительную информацию см. в CHANGELOG.

Базовое использование

Создайте контроллер, который расширяет WMPageController. Есть два способа инициализировать WMPageController:

Инициализация с помощью классов

Используйте следующий конструктор для инициализации контроллера:

- (instancetype)initWithViewControllerClasses:(NSArray *)classes  
                               andTheirTitles:(NSArray *)titles;  

Здесь есть два важных свойства:

  • classes — содержит классы дочерних контроллеров представления, такие как [UITableViewController class];
  • titles — заголовок каждого контроллера представления для отображения в представлении меню в верхней части представления.

Использование источника данных (рекомендуется!)

Использование аналогично UITableView, необходимо реализовать следующие методы:

- (NSInteger)numbersOfChildControllersInPageController:(WMPageController *)pageController;

- (__kindof UIViewController *)pageController:(WMPageController *)pageController viewControllerAtIndex:(NSInteger)index;

- (NSString *)pageController:(WMPageController *)pageController titleAtIndex:(NSInteger)index;  

После инициализации просто реализуйте эти методы источника данных в вашем WMPageController.

Настройка фрейма содержимого

Легко настроить свой контроллер следующим образом, просто реализуйте два метода источника данных:

- (CGRect)pageController:(WMPageController *)pageController preferredFrameForContentView:(WMScrollView *)contentView;

- (CGRect)pageController:(WMPageController *)pageController preferredFrameForMenuView:(WMMenuView *)menuView;  

Когда вы хотите изменить фрейм contentView, вам нужно вызвать метод -forceLayoutSubViews. Это вызовет повторный вызов вышеуказанного метода источника данных и перерисовку подпредставлений.
Если вам интересно, см. viewFrameExample для получения более подробной информации.

Использование раскадровки / xib

  1. Если вы инициализируете WMPageController классами дочернего контроллера, переопределите метод -init в дочернем контроллере представления WMPageController, например:
- (instancetype)init {
    return [self initWithNibName:@"xxxViewController" bundle:nil];
}  
  1. Если вы используете источник данных, просто реализуйте -pageController:viewControllerAtIndex: следующим образом:
- (UIViewController *)pageController:(WMPageController *)pageController viewControllerAtIndex:(NSInteger)index {
    UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    UIViewController *vc = [sb instantiateViewControllerWithIdentifier:@"WMViewController"];
    return vc;
}  

См. StoryboardExample для более подробной информации.

Стили

Вы можете легко изменить стиль, установив xxxPageController.style = WMMenuViewStyleLine.
Если вы хотите, чтобы menuView отображался на панели навигации, установите .showOnNavigationBar = YES.

Использование CocoaPods

Если вам нужна новейшая версия, попробуйте 2.4.0 (в ней изменены некоторые API).

pod 'WMPageController', '~> 2.4.0'  

Если предпочитаете старую версию, используйте 2.3.0.

pod 'WMPageController', '~> 2.3.0'  

Примечание

  1. Если у вас возникли проблемы с фреймом или размером контроллера содержимого, просто попробуйте установить свойство viewFrame, которое позволит вам настроить собственный размер.

  2. Вы можете поместить любой контроллер в WMPageController, но если вы хотите иметь UICollectionViewController, обратите внимание на метод инициализации UICollectionViewController.
    Вам следует переопределить - init, чтобы предоставить UICollectionViewController UICollectionViewLayout.
    Вот пример: ```objective-c

  • (instancetype)init { // init layout here... self = [self initWithCollectionViewLayout:layout]; if (self) { // insert code here... } return self; }

## License
Данный проект находится под лицензией MIT. Подробнее см. в файле LICENSE.

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

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

1
https://api.gitlife.ru/oschina-mirror/wangmchn-WMPageController.git
git@api.gitlife.ru:oschina-mirror/wangmchn-WMPageController.git
oschina-mirror
wangmchn-WMPageController
wangmchn-WMPageController
master