标签:
效果图如下:
绿色的是自定义的emenuView的rightView哟!!!
代码实现如下:
// // CategoryVC.m // JSHui // // Created by Apple on 16/9/16. // Copyright © 2016年 桑孔桥. All rights reserved. // #import "CategoryVC.h" #import "OneVC.h" #import "TwoVC.h" #import "ThreeVC.h" #import "FourVC.h" #import "FIveVC.h" #import "SixVC.h" #import "SevenVC.h" #import "EightVC.h" #import "LNSliderView.h" #import "CategoryModel.h" #import <MJExtension.h> #import "CoverView.h" #import "WMMenuView.h" @interface CategoryVC ()<UIScrollViewDelegate,LNSliderViewDelegate,CoverViewDelegate> { NSInteger i; } @property (strong, nonatomic) LNSliderView *sliderView; //数据源 @property (strong, nonatomic) NSMutableArray *dataArr; //子控制器 @property (strong, nonatomic) NSMutableArray *subsArr; @property(nonatomic,strong)UIScrollView *contentScv; @end @implementation CategoryVC -(NSMutableArray *)dataArr { if (_dataArr == nil) { _dataArr = [NSMutableArray array]; } return _dataArr; } -(NSMutableArray *)subsArr { if (_subsArr == nil) { _subsArr =[NSMutableArray array]; } return _subsArr; } -(void)back { } -(void)tag { XMGLogFunc } -(void)viewWillAppear:(BOOL)animated { [super viewWillAppear:YES]; self.title = @"类别"; self.navigationController.navigationBar.barTintColor = HexRGB(0x55b2ff); [self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}]; self.view.backgroundColor = [UIColor whiteColor]; } - (void)viewDidLoad{ [super viewDidLoad]; self.automaticallyAdjustsScrollViewInsets = NO; self.navigationItem.leftBarButtonItem = [UIBarButtonItem itemWithTitle:@"123" target:self action:@selector(tag)]; [self getData]; self.menuBGColor = [UIColor whiteColor]; self.menuView.backgroundColor = [UIColor whiteColor]; self.menuViewStyle = WMMenuViewStyleLine; self.menuView.width = SCREEN_WIDTH - 60; self.progressColor = [UIColor redColor]; self.titleColorNormal = [UIColor blackColor]; self.titleColorSelected = [UIColor blackColor]; self.titleSizeNormal = 14; self.titleSizeSelected = 14; } - (NSArray *)titles { return @[@"丸子类",@"水产类",@"猪肉类",@"素食类",@"小吃类",@"牛羊类",@"牛羊类",@"其他类"]; } #pragma mark - WMPageControllerDataSource - (NSInteger)numbersOfChildControllersInPageController:(WMPageController *)pageController { return self.titles.count; } - (UIViewController *)pageController:(WMPageController *)pageController viewControllerAtIndex:(NSInteger)index { switch (index) { case 0: { OneVC *allVC0 = [[OneVC alloc] init]; return allVC0; } case 1: { TwoVC *allVC1 = [[TwoVC alloc] init]; return allVC1; } case 2: { ThreeVC *allVC2 = [[ThreeVC alloc] init]; return allVC2; } case 3: { FourVC *allVC3 = [[FourVC alloc] init]; return allVC3; } case 4: { FIveVC *allVC4 = [[FIveVC alloc] init]; return allVC4; } case 5: { SixVC *allVC5 = [[SixVC alloc] init]; return allVC5; } case 6: { SevenVC *allVC6 = [[SevenVC alloc] init]; return allVC6; } break; default: { OneVC *allVC7 = [[OneVC alloc] init]; return allVC7; } break; } } - (NSString *)pageController:(WMPageController *)pageController titleAtIndex:(NSInteger)index { return self.titles[index]; } - (void)pageController:(WMPageController *)pageController lazyLoadViewController:(__kindof UIViewController *)viewController withInfo:(NSDictionary *)info { NSLog(@"%@", info); } - (void)pageController:(WMPageController *)pageController willEnterViewController:(__kindof UIViewController *)viewController withInfo:(NSDictionary *)info { } // 请求网络数据 -(void)getData { [[NetworkSingle sharemanger]getGoodsTypeDic:nil url:@"Goods/goodstype" SuccessBlock:^(id responseBody) { NSData *data = [NSJSONSerialization dataWithJSONObject:responseBody options:NSJSONWritingPrettyPrinted error:nil]; NSString *str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]; NSLog(@"_______%@",str); self.dataArr = [CategoryModel mj_objectArrayWithKeyValuesArray:responseBody[@"data"]]; [self dealTitles]; } fail:^(NSString *error) { }]; } // 请求数据更新menuView标题 - (void)dealTitles{ for (NSInteger index = 0; index< self.dataArr.count; index++) { CategoryModel *model = self.dataArr[index]; // 注意: 设置rightView或者是leftView要在viewDidLoad和刷新menuView之前即可.其他设置无效 UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; btn.backgroundColor = [UIColor greenColor]; btn.frame = CGRectMake(0,0, self.menuView.height, self.menuView.height); self.menuView.rightView = btn; [self updateTitle:model.t_type_name atIndex:index]; } } @end
代码注释很详细了哟!!
注意: 如果你是在init里实现menuView,这是不能设置menuView的leftView或者是rightView的,一定要在viewDidLoad或者是reloadData里实现自定义即可!!
WMPageController设置menuView的左右视图
标签:
原文地址:http://www.cnblogs.com/pengsi/p/5912314.html