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.
近期下载者:
相关文件:
收藏者: