WMPageController设置menuView的左右视图

效果图如下:

绿色的是自定义的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里实现自定义即可!!

时间: 2024-10-14 06:55:54

WMPageController设置menuView的左右视图的相关文章

滚动ScrollView---数组存放图片,设置3个滚动视图,用来滑动多张图片

问题描述:循环滑动切换n多张图片,不事先加载完成,现用现取. 解题思路:将要显示的图片存放在数组中,设置3个滚动视图,左边视图,正在显示的视图,右边视图 实现代码如下: //  ViewController.m #import "ViewController.h" #define kWith self.view.frame.size.width #define kHeight self.view.frame.size.height @interface ViewController (

Vue.set 向响应式对象中添加响应式属性,及设置数组元素触发视图更新

一.为什么需要使用Vue.set? vue中不能检测到数组和对象的两种变化: 1.数组长度的变化 vm.arr.length = 4 2.数组通过索引值修改内容 vm.arr[1] = ‘aa’ Vue.$set(target,key,value):可以动态的给数组.对象添加和修改数据,并更新视图中数据的显示. vue在构造函数new Vue()时,就通过Object.defineProperty中的getter和setter 这两个方法,完成了对数据的绑定.所以直接通过vm.arr[1] =

sharepoint 2013 设置页面禁用兼容性视图的方法

可能大家会觉得奇怪,我们要禁用掉IE的兼容模式,因为从IE8开始,浏览器新添加了这个兼容视图模式,当我们开启后,使其向低一版本的IE进行一个"渲染",所以在浏览网页的过程中会引起一些不必要的问题,那么一个常用的利用HTML添加代码来使我们使用的IE固定渲染模式. <head> <meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" />

SB中使用Autolayout设置到父视图的间距为0

发现打上钩的话在plus以下的屏幕上控件的实际x会是-4但是在plus上是0, 所以要设置一致的到视图的左右都未0 必须把Constrain to margins钩去掉!

EBS OAF开发中实体对象和视图对象的属性设置器

(版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) 源文: Home > Oracle Application Framework Documentation Set, Release 12.2 > Oracle Application Framework Developer's Guide > Chapter 5: Implementing Server-Side Features > Entity Object and Vi

【转】各种常用浏览器“兼容性视图”设置方法

原文网址:http://work.haoysoft.com/orderking//public/compatibleviewseting.aspx 各种常用浏览器“兼容性视图”设置方法 订单管理系统的内容看不到或显示不正常时,需要设置浏览器的“兼容性视图”来保证系统的正常显示. 以下罗列出各种常用浏览器设置“兼容性视图”的方法,请根据您使用的浏览器来对照设置,以便系统能正常显示和使用. 1.IE浏览器“兼容性视图”设置 用IE浏览器打开订单管理系统后,在浏览器的地址栏的右边有一个的图标,如下图所

mysql 深入视图和索引

版权声明:欢迎交流! 目录(?)[+] 注:求职季,巩固下MySQL知识! 1.视图 视图又叫虚表.同真实的表一样,视图包含一系列带有名称的列和行数据.但是,视图并不在数据库中以存储的数据值集形式存在.行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成. 视图主要有以下作用: 1.安全,权限控制.一些数据表有着重要的信息.有些字段是保密的,不能让用户直接看到.这时就可以创建一个视图,在这张视图中只保留一部分字段.这样,用户就可以查询自己需要的字段,不能查看保密的字段. 2.性能,

UINavigation的外观设置和页面之间的跳转

创建导航: 1.创建一个视图控制器的类a 2.在app中引用 3.在app.m中创建a对象 4.创建一个导航视图,并且把a对象作为导航视图的根视图 5.设置window的根视图为导航视图控制器,代码: 6.到a.m文件中给导航设置属性,如:(给导航设置属性大部分都是.navigationItem) 用导航的两个视图之间的跳转: 1.再创建一个视图控制器,在第一个视图控制器还有第二个视图控制器上面都添加一个按钮,来用于页面之间的跳转 2.第一个页面到第二个页面之间的跳转button的方法,代码:(

UIView 视图切换

UIView之间常用视图之间切换方式 转载自:http://www.jianshu.com/p/0d53f9402c07 在平时编写代码的过程中,页面之间的跳转可以说就和MVC模式一样是开发必须的.但是可能我们知道一种或者几种页面之间的跳转,今天我就来总结一下我在开发之中遇到的所有的页面跳转代码.(关于控制器之间的简单的跳转,比如导航控制器跳转.故事版跳转.简单的模态跳转不在这里多说) 一.代理跳转. 通常我们在跳转中经常是通过你点击了某个事件或者某个操作使你进行控制器之间的跳转.那么我们可以在