码迷,mamicode.com
首页 > 其他好文 > 详细

WMPageController设置menuView的左右视图

时间:2016-09-27 13:30:49      阅读:845      评论:0      收藏:0      [点我收藏+]

标签:

效果图如下:

技术分享

 

绿色的是自定义的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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!