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:@"" target:self action:@selector(tag)];
[self getData];
self.menuBGColor = [UIColor whiteColor];
self.menuView.backgroundColor = [UIColor whiteColor];
self.menuViewStyle = WMMenuViewStyleLine;
self.menuView.width = SCREEN_WIDTH - ;
self.progressColor = [UIColor redColor];
self.titleColorNormal = [UIColor blackColor];
self.titleColorSelected = [UIColor blackColor];
self.titleSizeNormal = ;
self.titleSizeSelected = ;
} - (NSArray *)titles {
return @[@"丸子类",@"水产类",@"猪肉类",@"素食类",@"小吃类",@"牛羊类",@"牛羊类",@"其他类"];
} #pragma mark - WMPageControllerDataSource - (NSInteger)numbersOfChildControllersInPageController:(WMPageController *)pageController { return self.titles.count;
} - (UIViewController *)pageController:(WMPageController *)pageController viewControllerAtIndex:(NSInteger)index {
switch (index) {
case : {
OneVC *allVC0 = [[OneVC alloc] init];
return allVC0;
}
case : {
TwoVC *allVC1 = [[TwoVC alloc] init];
return allVC1;
}
case : {
ThreeVC *allVC2 = [[ThreeVC alloc] init];
return allVC2;
}
case : {
FourVC *allVC3 = [[FourVC alloc] init];
return allVC3;
}
case : {
FIveVC *allVC4 = [[FIveVC alloc] init];
return allVC4;
}
case : {
SixVC *allVC5 = [[SixVC alloc] init];
return allVC5;
}
case : {
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 = ; 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(,, 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的左右视图的更多相关文章
- Vue.set 向响应式对象中添加响应式属性,及设置数组元素触发视图更新
一.为什么需要使用Vue.set? vue中不能检测到数组和对象的两种变化: 1.数组长度的变化 vm.arr.length = 4 2.数组通过索引值修改内容 vm.arr[1] = ‘aa’ Vu ...
- iOS 之 设置控件在视图中心位置
_qrImgView.bounds = CGRectMake(0, 0, sizeImg, sizeImg); _qrImgView.center = CGPointMake(CGRectGetWid ...
- SB中使用Autolayout设置到父视图的间距为0
发现打上钩的话在plus以下的屏幕上控件的实际x会是-4但是在plus上是0, 所以要设置一致的到视图的左右都未0 必须把Constrain to margins钩去掉!
- IE兼容性视图设置
问题: 页面 http://course.upol.cn/lx/jzjjygl/index.html 的课程学习中课程打不开 看了代码是有浏览器版本要求,IE9以上无法访问 解决办法: 1. 在IE设 ...
- EBS OAF开发中实体对象和视图对象的属性设置器
EBS OAF开发中实体对象和视图对象的属性设置器 (版权声明.本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) 源文: Home > Oracle ...
- Asp.net 代码设置兼容性视图
一.代码中设置兼容性 <summary> 兼容性视图 </summary> <param name="myPage"></param> ...
- iOS开发系列--视图切换
概述 在iOS开发中视图的切换是很频繁的,独立的视图应用在实际开发过程中并不常见,除非你的应用足够简单.在iOS开发中常用的视图切换有三种,今天我们将一一介绍: UITabBarController ...
- iOS 视图控制器 (内容根据iOS编程编写)
视图控制器是 UIViewController 类或其子类对象.每个视图控制器都负责管理一个视图层次结构,包括创建视图层级结构中的视图并处理相关用户事件,以及将整个视图层次结构添加到应用窗口. 创建 ...
- iOS,视图相关
1.移除视图的所以子视图 2.自定义视图(UIView) 3.处理悬浮窗口(类似微信视频),等比缩放 4.自定义前面视图(可以手写字) 5.图片拉伸的几种方式,计算文本占用空间大小 6.UILable ...
随机推荐
- Kettle安装和简单使用
Kettle安装和使用 安装 安装之前需要准备的环境为Java环境,需要提前配置好jdk 下载之后,解压即可使用. 使用 1.因为该工具主要是对数据库进行操作,所以需要提前将mysql的jar包放到l ...
- Java多线程断点下载文件
Java实现断点续传+多线程下载 如下代码所示,每一步都有注解 思路: 通过URL连接到服务器上要下载的文件,得到文件的大小: 算出每条线程下载的开始位置和结束位置,例如,有两条线程下载100Byte ...
- BZOJ 4802: 欧拉函数 (Pollard-Rho)
开始一直T,原来是没有srand- CODE #include<bits/stdc++.h> using namespace std; typedef long long LL; vect ...
- python--ctypes模块:调用C函数
Python 的 ctypes 要使用 C 函数,需要先将 C 编译成动态链接库的形式,即 Windows 下的 .dll 文件,或者 Linux 下的 .so 文件 Windows 系统下的 C 标 ...
- 题解 【NOIP2006】作业调度方案
[NOIP2006]作业调度方案 Description 我们现在要利用 m 台机器加工 n 个工件,每个工件都有 m 道工序,每道工序都在不同的指定的机器上完成.每个工件的每道工序都有指定的加工时间 ...
- composer查看全局配置
composer config -l -g composer 更新慢 composer下载不下来问题解决 使用 Composer 镜像加速有两种选项: 选项一:全局配置,这样所有项目都能惠及(推荐): ...
- 019_linuxC++之_函数模板引入
(一)首先我们来看非模板程序,函数只是输入不一样的变量就需要构件很多个不一样的函数,那么这样很麻烦,则引入函数模板 int& max(int& a, int& b) { ret ...
- gcc/g++以c++11编译
方法一: //在程序头加上预定义编译器命令 #pragma GCC diagnostic error "-std=c++11" //通过#pragma 指示 GCC编译器处理错误的 ...
- 洛谷P1436 棋盘分割
洛谷题目链接 动态规划: 我们设状态$f[i][j][o][p][k]$表示一个矩形,左上角顶点坐标为$(i,j)$,右下角顶点坐标为$(o,p)$时分割了$k$次,也就是说现在是$k+1$块 我们考 ...
- 11.17 模拟赛&&day-2
/* 后天就要复赛了啊啊啊啊啊. 可能是因为我是一个比较念旧的人吧. 讲真 还真是有点不舍. 转眼间一年的时间就过去了. 2015.12-2016.11. OI的一年. NOIP gryz RP++. ...