/WMPageController

An easy solution to page controllers like NetEase News

Primary LanguageObjective-CMIT LicenseMIT

WMPageController

Platform License CocoaPods Version

An easy solution to page controllers like NetEase News

Overview




And you can easily change styles by setting `menuViewStyle` property: ```objective-c pageController.menuViewStyle = WMMenuViewStyleLine; ``` ## Swift Version Click here: https://github.com/wangmchn/WMPageController-Swift

What's New

  • Now page controller has a cache policy and scroll much more fluently!
  • Add itemMargin and itemsMargins to custom margin between each item, viewFrame to custom controller.view's frame.
  • Add values and keys properties which can help pass values to childControllers through KVC.
  • If items width didn't fill the screen width, WMPageController will calculate width and add gap between each item automatically;
  • Adjust views and frames when device's orientation changed;
  • Set the property itemsWidths to have Different Width! Like @[@(100),@(80),@(50).....];

Basic use

First Drag files in red frame to your project.

Then,create an controller that extends from WMPageController.I recommend to use

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

to init the controller.Here are two important porperties

classes :contains the classes of view controller, you can put obj in like [UITableViewController class];
titles  :Each View controller's title to show in the menu view at the top of the view;

To have a custom page controller,please set the properties in WMPageController ,They are: titleSize, titleColor, menuHeight, pageAnimatable, menuBGColor, menuItemWidth,rememberLocation,and also itemsWidths.

Pod

pod 'WMPageController'

Note

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:

- (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.