WMPageController

所属分类:collect
开发工具:Objective-C
文件大小:0KB
下载次数:0
上传日期:2021-04-01 11:11:36
上 传 者sh-1993
说明:  一种简单的页面控制器解决方案,如网易新闻、,
(An easy solution to page controllers like NetEase News,)

文件列表:
CHANGELOG.md (2006, 2018-07-02)
LICENSE (1067, 2018-07-02)
WMPageController.podspec (625, 2018-07-02)
WMPageController/ (0, 2018-07-02)
WMPageController/UIViewController+WMPageController.h (396, 2018-07-02)
WMPageController/UIViewController+WMPageController.m (684, 2018-07-02)
WMPageController/WMMenuView/ (0, 2018-07-02)
WMPageController/WMMenuView/WMMenuItem.h (1345, 2018-07-02)
WMPageController/WMMenuView/WMMenuItem.m (3259, 2018-07-02)
WMPageController/WMMenuView/WMMenuView.h (5095, 2018-07-02)
WMPageController/WMMenuView/WMMenuView.m (21572, 2018-07-02)
WMPageController/WMMenuView/WMProgressView.h (896, 2018-07-02)
WMPageController/WMMenuView/WMProgressView.m (4686, 2018-07-02)
WMPageController/WMMenuView/WMScrollView.h (232, 2018-07-02)
WMPageController/WMMenuView/WMScrollView.m (660, 2018-07-02)
WMPageController/WMPageController.h (14715, 2018-07-02)
WMPageController/WMPageController.m (33937, 2018-07-02)
WMPageControllerDemo/ (0, 2018-07-02)
WMPageControllerDemo/Overview.gif (1309379, 2018-07-02)
WMPageControllerDemo/StickyExample/ (0, 2018-07-02)
WMPageControllerDemo/StickyExample/Podfile (489, 2018-07-02)
WMPageControllerDemo/StickyExample/Podfile.lock (302, 2018-07-02)
WMPageControllerDemo/StickyExample/Pods/ (0, 2018-07-02)
WMPageControllerDemo/StickyExample/Pods/Headers/ (0, 2018-07-02)
WMPageControllerDemo/StickyExample/Pods/Headers/Private/ (0, 2018-07-02)
WMPageControllerDemo/StickyExample/Pods/Headers/Private/WMPageController/ (0, 2018-07-02)
WMPageControllerDemo/StickyExample/Pods/Headers/Private/WMPageController/UIViewController+WMPageController.h (70, 2018-07-02)
WMPageControllerDemo/StickyExample/Pods/Headers/Private/WMPageController/WMMenuItem.h (58, 2018-07-02)
WMPageControllerDemo/StickyExample/Pods/Headers/Private/WMPageController/WMMenuView.h (58, 2018-07-02)
WMPageControllerDemo/StickyExample/Pods/Headers/Private/WMPageController/WMPageController.h (53, 2018-07-02)
WMPageControllerDemo/StickyExample/Pods/Headers/Private/WMPageController/WMProgressView.h (62, 2018-07-02)
WMPageControllerDemo/StickyExample/Pods/Headers/Private/WMPageController/WMScrollView.h (60, 2018-07-02)
WMPageControllerDemo/StickyExample/Pods/Headers/Public/ (0, 2018-07-02)
WMPageControllerDemo/StickyExample/Pods/Headers/Public/WMPageController/ (0, 2018-07-02)
WMPageControllerDemo/StickyExample/Pods/Headers/Public/WMPageController/UIViewController+WMPageController.h (70, 2018-07-02)
WMPageControllerDemo/StickyExample/Pods/Headers/Public/WMPageController/WMMenuItem.h (58, 2018-07-02)
WMPageControllerDemo/StickyExample/Pods/Headers/Public/WMPageController/WMMenuView.h (58, 2018-07-02)
... ...

# WMPageController [中文介绍](https://github.com/wangmchn/WMPageController/blob/master/README_zh-CN.md) [![Platform](http://img.shields.io/badge/platform-iOS-blue.svg?style=flat )](https://developer.apple.com/iphone/index.action) [![License](http://img.shields.io/badge/license-MIT-lightgrey.svg?style=flat )](http://mit-license.org) ![CocoaPods Version](https://img.shields.io/badge/pod-v0.36.4-brightgreen.svg) An easy solution to page controllers like `NetEase News` ## Overview ## Change Log See [CHANGELOG](https://github.com/wangmchn/WMPageController/blob/master/CHANGELOG.md) for more information. ## Basic use Create an controller extends from `WMPageController`.There are two ways to init the `WMPageController`: #### Init with Classes Use the following constructor to init the controller: ```objective-c - (instancetype)initWithViewControllerClasses:(NSArray *)classes andTheirTitles:(NSArray *)titles; ``` Here are two important porperties: classes :contains the classes of child view controllers, just like [UITableViewController class]; titles :Each View controller's title to show in the menu view at the top of the view; #### Use datasource (Recommend This Way!) The usage is very familiar to `UITableView`, these are the methods need to implement: ```objective-c - (NSInteger)numbersOfChildControllersInPageController:(WMPageController *)pageController; - (__kindof UIViewController *)pageController:(WMPageController *)pageController viewControllerAtIndex:(NSInteger)index; - (NSString *)pageController:(WMPageController *)pageController titleAtIndex:(NSInteger)index; ``` Just implement these datasource methods in YOUR WMPageController after initialize it. ## Customize Content's Frame It's easy for you to customize your controller as following, just implement these two datasource methods.
``` - (CGRect)pageController:(WMPageController *)pageController preferredFrameForContentView:(WMScrollView *)contentView; - (CGRect)pageController:(WMPageController *)pageController preferredFrameForMenuView:(WMMenuView *)menuView; ``` When you want to change the frame of contentView, you need to call `-forceLayoutSubViews` method. This will recall the datasource method above and re-layout subviews. If you are interested, see `viewFrameExample` for more detail. ## Use Storyboard / xib 1.If you init the `WMPageController` with child controller's class,override the `-init` method in `WMPageController's childViewController`, For example: ```objective-c - (instancetype)init { return [self initWithNibName:@"xxxViewController" bundle:nil]; } ``` 2.If you are using datasource, Just implement `-pageController:viewControllerAtIndex:` as following: ```objective-c - (UIViewController *)pageController:(WMPageController *)pageController viewControllerAtIndex:(NSInteger)index { UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; UIViewController *vc = [sb instantiateViewControllerWithIdentifier:@"WMViewController"]; return vc; } ``` See `StoryboardExample` for more detail. ## Styles You can easily change style by setting `xxxPageController.style = WMMenuViewStyleLine`.
If you want `menuView` to show on the navigation bar, set `.showOnNavigationBar = YES`; ## Using CocoaPods If you want the newest version, try 2.4.0 (This has some API modified) ``` pod 'WMPageController', '~> 2.4.0' ``` If you perfer the old, just use 2.3.0 and it's fine. ``` pod 'WMPageController', '2.3.0' ``` ## Note 1. If you have any trouble with content controller's frame or size,just try set `viewFrame` property, which make you free to customize your own size. 2. You can put every controller in `WMPageController`,But if you want have a `UICollectionViewController` in, please have an attention to `UICollectionViewController's` init method.
You should override the `- init` to give `UICollectionViewController` a `UICollectionViewLayout`. Here is an example: ```objective-c - (instancetype)init { // init layout here... self = [self initWithCollectionViewLayout:layout]; if (self) { // insert code here... } return self; } ``` ## License This project is under MIT License. See LICENSE file for more information.

近期下载者

相关文件


收藏者