iOS开发--仿新闻首页效果WMPageController的使用详解

2020-01-18 17:16:46王振洲

这一篇记录的是iOS开发中第三方库WMPageController控件的使用方法,主要是用来分页显示内容的,可以通过手势滑动来切换页面,也可以通过点击标题部分来切换页面,如下图所示:
ios,wmpagecontroller,wmpagecontroller用法,wmpagecontroller思路

使用方法:

新建工程DemoTest1,然后通过cocoapods引入WMPageController到项目中,Podfile文件的内容如下:


platform :ios,'7.0'

target 'DemoTest1' do

 pod 'WMPageController', '~> 1.6.4'

end

方法一:

(1)创建几个ViewController继承自UIViewController测试用:

(2)打开AppDelegate.m文件,在其中加入下面一个方法:


#import "WMPageController.h"

#import "OneViewController.h"
#import "ViewController.h"
#import "TwoViewController.h"

@interface AppDelegate ()

@property(nonatomic,strong) WMPageController *createPages;

@end

@implementation AppDelegate

- (WMPageController *)createPages {


  //WMPageController中包含的页面数组
  NSArray *controllers = [NSArray arrayWithObjects:[ViewController class], [OneViewController class],[TwoViewController class], nil];
  //WMPageController控件的标题数组
  NSArray *titles = [NSArray arrayWithObjects:@"体育新闻", @"娱乐新闻",@"直播新闻", nil];
  //用上面两个数组初始化WMPageController对象
  WMPageController *pageController = [[WMPageController alloc] initWithViewControllerClasses:controllers andTheirTitles:titles];
  pageController.menuViewStyle = WMMenuViewStyleLine;
  pageController.titleColorSelected = [UIColor whiteColor];
  pageController.titleColorNormal = [UIColor colorWithRed:168.0/255.0 green:20.0/255.0 blue:4/255.0 alpha:1];
  pageController.progressColor = [UIColor colorWithRed:168.0/255.0 green:20.0/255.0 blue:4/255.0 alpha:1];
  //  pageController.itemsWidths = @[@(70),@(100),@(70)]; // 这里可以设置不同的宽度

  //设置WMPageController每个标题的宽度
  pageController.menuItemWidth = 375/3;
  //设置WMPageController标题栏的高度
  pageController.menuHeight = 35;
  //设置WMPageController选中的标题的颜色
  pageController.titleColorSelected = [UIColor colorWithRed:200 green:0 blue:0 alpha:1];
  return pageController;
}


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {


 self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];


  WMPageController *page = [self createPages];

  UINavigationController *na = [[UINavigationController alloc] initWithRootViewController:page];

  self.window.rootViewController = na;

  [self.window makeKeyAndVisible];

  return YES;
}

方法二:

(1)创建个ViewController继承自WMPageController