iOS开发-网易滚动导航栏
HACursor,是一个对横向ScrollView中的视图进行管理的UI控件。只要几行代码就可以集成类似于网易新闻对主题页面进行排序,删除操作的功能。主srollview参考iOS原生的UITableView的接口设计思路,实现了缓存,避免了一次性加载多个页面所造成的性能消耗。

1.导入HACursor框架
从github上下载需要的框架,下载完成以后只需要将项目中的HACursor导入所需要的过程即可,如下图:

2.引入头文件
在视图控制器中引入头文件:
- #import "HACursor.h"
3.在viewDidLoad方法中,配置HACursor
- @interface ViewController ()
- @property (nonatomic,strong) NSArray *titles;//顶部视图的内容
- @end
- - (void)viewDidLoad {
- [super viewDidLoad];
- // Do any additional setup after loading the view, typically from a nib.
- titles = @[@"网易",@"新浪",@"腾讯",@"苹果",@"搜狐",@"淘宝",@"京东",@"百度",@"有道",@"小米",@"华为",@"三星"];
- HACursor *cursor = [[HACursor alloc]init];
- cursor.frame = CGRectMake(0, 64, self.view.width, 45);
- cursor.titles = titles;
- //每个子视图显示的内容
- cursor.pageViews = [self createPageViews];//此方法必需使用,pageView需要展示的内容按按照需求自定义
- //设置根滚动视图的高度
- cursor.rootScrollViewHeight = self.view.frame.size.height - 109;
- //默认值是白色
- cursor.titleNormalColor = [UIColor whiteColor];
- //默认值是白色
- cursor.titleSelectedColor = [UIColor redColor];
- cursor.showSortbutton = YES;
- //默认的最小值是5,小于默认值的话按默认值设置
- cursor.minFontSize = 6;
- [self.view addSubview:cursor];
- }
- //用webView展示
- - (NSMutableArray *)createPageViews{
- NSMutableArray *pageViews = [NSMutableArray array];
- NSArray *webViewArray = @[@"http://www.baidu.com",@"http://www.baidu.com",@"http://www.baidu.com",@"http://www.baidu.com",@"http://www.baidu.com",@"http://www.baidu.com",@"http://www.baidu.com",@"http://www.baidu.com",@"http://www.baidu.com",@"http://www.baidu.com",@"http://www.baidu.com",@"http://www.baidu.com"];//对应的标题用对应的网址
- //分别展示每个page下面的webView
- for (NSInteger i = 0; i < self.titles.count; i++) {
- UIWebview webView *web = [[webView alloc]init];
- NSString *str = [NSString stringWithFormat:@"%@",[webViewArray objectAtIndex:i]];
- NSURL *url = [NSURL URLWithString:str];
- NSURLRequest *urlRequest = [[NSURLRequest alloc]initWithURL:url];
- [web loadRequest:urlRequest];
- [pageViews addObject:web];
- }
- return pageViews;
- }
4.设置属性
HACursor提供了一系列属性,可以根据自己的项目选择所需要的属性,添加到viewDidLoad中
- //显示的标题栏的标题(必选!!)
- cursor.titles = self.titles;
- //需要管理的子页面(必选!!)
- cursor.pageViews = self.pageViews;
- //设置rootScrollView的高度(必选!!)
- cursor.rootScrollViewHeight = self.view.frame.size.height - 65;
- //设置标题普通状态下的颜色
- cursor.titleNormalColor = [UIColor whiteColor];
- //设置标题选中状态下的颜色
- cursor.titleSelectedColor = [UIColor redColor];
- //是否需要显示排序的按钮
- cursor.showSortbutton = YES;
- //设置背景颜色
- cursor.backgroundColor = [UIColor yellowColor];
- //设置最小化的字体
- cursor.minFontSize = 10.0;
- //设置最大化的字体
- cursor.maxFontSize = 30.0;
- //设置是否需要渐变字体的大小
- cursor.isGraduallyChangFont = NO;
- //设置是否需要渐变字体的颜色
- cursor.isGraduallyChangColor = NO;
案例下载
iOS开发-网易滚动导航栏的更多相关文章
- IOS开发中设置导航栏主题
/** * 系统在第一次使用这个类的时候调用(1个类只会调用一次) */ + (void)initialize { // 设置导航栏主题 UINavigationBar *navBar = [UINa ...
- iOS开发之自定义导航栏返回按钮右滑返回手势失效的解决
我相信针对每一个iOS开发者来说~除了根视图控制器外~所有的界面通过导航栏push过去的界面都是可以通过右滑来返回上一个界面~其实~在很多应用和APP中~用户已经习惯了这个功能~然而~作为开发者的我们 ...
- ios开发之--首页 导航栏隐藏 下一级页面显示,pop回来显示白条
解决方法,在首页中实现如下两个方法,代码如下: -(void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated] ...
- IOS开发UI篇—导航控制器属性和基本使用
IOS开发UI篇—导航控制器属性和基本使用 一.导航控制器的一些属性和基本使用 1.把子控制器添加到导航控制器中的四种方法 (1) 1.创建一个导航控制器 UINavigationController ...
- zhuang 定制iOS 7中的导航栏和状态栏
近期,跟大多数开发者一样,我也正忙于对程序进行升级以适配iOS 7.最新的iOS 7外观上有大量的改动.从开发者的角度来看,导航栏和状态栏就发生了明显的变化.状态栏现在是半透明的了,这也就意味着导航栏 ...
- iOS 7 教程:定制iOS 7中的导航栏和状态栏
目录(?)[-] iOS 7中默认的导航栏 设置导航栏的背景颜色 在导航栏中使用背景图片 定制返回按钮的颜 修改导航栏标题的字体 修改导航栏标题为图片 添加多个按钮 修改状态栏的风格 隐藏状态栏 总结 ...
- (转)定制iOS 7中的导航栏和状态栏
近期,跟大多数开发者一样,我也正忙于对程序进行升级以适配iOS 7.最新的iOS 7外观上有大量的改动.从开发者的角度来看,导航栏和状态栏就发生了明显的变化.状态栏现在是半透明的了,这也就意味着导航栏 ...
- 定制iOS 7中的导航栏和状态栏
本文转载至 http://www.cocoachina.com/industry/20131104/7287.html 跟大多数开发者一样,我也正忙于对程序进行升级以适配iOS 7.最新的iOS 7外 ...
- iOS获取状态栏和导航栏尺寸(宽度和高度)
iPhone开发当中,有时需要获取状态栏和导航栏高度.宽度信息,方便布局其他控件.下面介绍一下如何获取这些信息: // 状态栏(statusbar) CGRect rectStatus = [[UIA ...
随机推荐
- Qt的QTabelWidget
QTableWidget的用法总结 http://blog.csdn.net/zb872676223/article/details/39959061 [Qt]在QTableWidget中添加QCh ...
- UITableView swift
// // ViewController.swift // UILabelTest // // Created by mac on 15/6/23. // Copyright (c) 2015年 fa ...
- linux查看端口是否已开启和查看文件数
查看端口是否开启 lsof -i:80 查看文件数 ls | wc -w
- chart.js图表库案例赏析,饼图添加文字
chart.js图表库案例赏析,饼图添加文字 Chart.js 是一个令人印象深刻的 JavaScript 图表库,建立在 HTML5 Canvas 基础上.目前,它支持6种图表类型(折线图,条形图, ...
- 15、android 用toast实现简单的进度显示
if(mtoast!=null) { mtoast.setText(progress); } else { mtoast=Toast.makeText(getApplicationContext(), ...
- Dedication(转)
To all developers who strive for continuous self-improvement... Who are not satisfied with good enou ...
- Extjs 选择元素涉及方法总结
本文主要是解释Extjs在使用过程中使用的相关选择方法: 1.首先解释第一组概念: Ext.get(String/HTMLElement/Ext.Element el) Ext.getCmp(Stri ...
- bzoj 2002 LCT
LCT最基础的题,就用到了一个ACCESS操作 首先我们将这个绵羊弹飞的情况看成一颗树,那么假设X点被弹飞到 Y点,那么Y为X的父亲节点,弹飞的话父亲节点为n+1(虚设) 那么每个询问就是询问X点到根 ...
- Leetcode#87 Scramble String
原题地址 两个字符串满足什么条件才称得上是scramble的呢? 如果s1和s2的长度等于1,显然只有s1=s2时才是scramble关系. 如果s1和s2的长度大于1,那么就对s1和s2进行分割,划 ...
- frequentism-and-bayesianism-chs-iii
frequentism-and-bayesianism-chs-iii 频率主义 vs 贝叶斯主义 III:置信(Confidence)与可信(Credibility),频率主义与科学,不能混为一 ...