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

1.导入HACursor框架

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

HACursor

2.引入头文件

在视图控制器中引入头文件:

  1. #import "HACursor.h"

3.在viewDidLoad方法中,配置HACursor

  1. @interface ViewController ()
  2. @property (nonatomic,strong) NSArray *titles;//顶部视图的内容
  3. @end
  1. - (void)viewDidLoad {
  2. [super viewDidLoad];
  3. // Do any additional setup after loading the view, typically from a nib.
  4. titles = @[@"网易",@"新浪",@"腾讯",@"苹果",@"搜狐",@"淘宝",@"京东",@"百度",@"有道",@"小米",@"华为",@"三星"];
  5. HACursor *cursor = [[HACursor alloc]init];
  6. cursor.frame = CGRectMake(0, 64, self.view.width, 45);
  7. cursor.titles = titles;
  8. //每个子视图显示的内容
  9. cursor.pageViews = [self createPageViews];//此方法必需使用,pageView需要展示的内容按按照需求自定义
  10. //设置根滚动视图的高度
  11. cursor.rootScrollViewHeight = self.view.frame.size.height - 109;
  12. //默认值是白色
  13. cursor.titleNormalColor = [UIColor whiteColor];
  14. //默认值是白色
  15. cursor.titleSelectedColor = [UIColor redColor];
  16. cursor.showSortbutton = YES;
  17. //默认的最小值是5,小于默认值的话按默认值设置
  18. cursor.minFontSize = 6;
  19. [self.view addSubview:cursor];
  20. }
  21. //用webView展示
  22. - (NSMutableArray *)createPageViews{
  23. NSMutableArray *pageViews = [NSMutableArray array];
  24. 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"];//对应的标题用对应的网址
  25. //分别展示每个page下面的webView
  26. for (NSInteger i = 0; i < self.titles.count; i++) {
  27. UIWebview webView *web = [[webView alloc]init];
  28. NSString *str = [NSString stringWithFormat:@"%@",[webViewArray objectAtIndex:i]];
  29. NSURL *url = [NSURL URLWithString:str];
  30. NSURLRequest *urlRequest = [[NSURLRequest alloc]initWithURL:url];
  31. [web loadRequest:urlRequest];
  32. [pageViews addObject:web];
  33. }
  34. return pageViews;
  35. }

4.设置属性

HACursor提供了一系列属性,可以根据自己的项目选择所需要的属性,添加到viewDidLoad中

  1. //显示的标题栏的标题(必选!!)
  2. cursor.titles = self.titles;
  3. //需要管理的子页面(必选!!)
  4. cursor.pageViews = self.pageViews;
  5. //设置rootScrollView的高度(必选!!)
  6. cursor.rootScrollViewHeight = self.view.frame.size.height - 65;
  7. //设置标题普通状态下的颜色
  8. cursor.titleNormalColor = [UIColor whiteColor];
  9. //设置标题选中状态下的颜色
  10. cursor.titleSelectedColor = [UIColor redColor];
  11. //是否需要显示排序的按钮
  12. cursor.showSortbutton = YES;
  13. //设置背景颜色
  14. cursor.backgroundColor = [UIColor yellowColor];
  15. //设置最小化的字体
  16. cursor.minFontSize = 10.0;
  17. //设置最大化的字体
  18. cursor.maxFontSize = 30.0;
  19. //设置是否需要渐变字体的大小
  20. cursor.isGraduallyChangFont = NO;
  21. //设置是否需要渐变字体的颜色
  22. cursor.isGraduallyChangColor = NO;

案例下载

WYDemo

iOS开发-网易滚动导航栏的更多相关文章

  1. IOS开发中设置导航栏主题

    /** * 系统在第一次使用这个类的时候调用(1个类只会调用一次) */ + (void)initialize { // 设置导航栏主题 UINavigationBar *navBar = [UINa ...

  2. iOS开发之自定义导航栏返回按钮右滑返回手势失效的解决

    我相信针对每一个iOS开发者来说~除了根视图控制器外~所有的界面通过导航栏push过去的界面都是可以通过右滑来返回上一个界面~其实~在很多应用和APP中~用户已经习惯了这个功能~然而~作为开发者的我们 ...

  3. ios开发之--首页 导航栏隐藏 下一级页面显示,pop回来显示白条

    解决方法,在首页中实现如下两个方法,代码如下: -(void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated] ...

  4. IOS开发UI篇—导航控制器属性和基本使用

    IOS开发UI篇—导航控制器属性和基本使用 一.导航控制器的一些属性和基本使用 1.把子控制器添加到导航控制器中的四种方法 (1) 1.创建一个导航控制器 UINavigationController ...

  5. zhuang 定制iOS 7中的导航栏和状态栏

    近期,跟大多数开发者一样,我也正忙于对程序进行升级以适配iOS 7.最新的iOS 7外观上有大量的改动.从开发者的角度来看,导航栏和状态栏就发生了明显的变化.状态栏现在是半透明的了,这也就意味着导航栏 ...

  6. iOS 7 教程:定制iOS 7中的导航栏和状态栏

    目录(?)[-] iOS 7中默认的导航栏 设置导航栏的背景颜色 在导航栏中使用背景图片 定制返回按钮的颜 修改导航栏标题的字体 修改导航栏标题为图片 添加多个按钮 修改状态栏的风格 隐藏状态栏 总结 ...

  7. (转)定制iOS 7中的导航栏和状态栏

    近期,跟大多数开发者一样,我也正忙于对程序进行升级以适配iOS 7.最新的iOS 7外观上有大量的改动.从开发者的角度来看,导航栏和状态栏就发生了明显的变化.状态栏现在是半透明的了,这也就意味着导航栏 ...

  8. 定制iOS 7中的导航栏和状态栏

    本文转载至 http://www.cocoachina.com/industry/20131104/7287.html 跟大多数开发者一样,我也正忙于对程序进行升级以适配iOS 7.最新的iOS 7外 ...

  9. iOS获取状态栏和导航栏尺寸(宽度和高度)

    iPhone开发当中,有时需要获取状态栏和导航栏高度.宽度信息,方便布局其他控件.下面介绍一下如何获取这些信息: // 状态栏(statusbar) CGRect rectStatus = [[UIA ...

随机推荐

  1. IIS 8.5配置.net网站[花了半个多小时]

    1.默认安装了IIS部分功能.参考http://www.cnblogs.com/xuanhun/p/4201645.html 2.运用程序连接池, 使用集成 模式 3.运用程序连接池,设置启用32位应 ...

  2. html <input>标签类型属性type(file、text、radio、hidden等)详细介绍

    html <input>标签类型属性type(file.text.radio.hidden等)详细介绍 转载请注明:文章转载自:[169IT-最新最全的IT资讯] html <inp ...

  3. java 静态变量生命周期(类生命周期)

    Static: 加载:java虚拟机在加载类的过程中为静态变量分配内存. 类变量:static变量在内存中只有一个,存放在方法区,属于类变量,被所有实例所共享 销毁:类被卸载时,静态变量被销毁,并释放 ...

  4. Convert Sorted Array to Binary Search Tree

    Convert Sorted Array to Binary Search Tree Given an array where elements are sorted in ascending ord ...

  5. 或许你不知道(2):LinkedList

    一,基本的存储结构及数据存取 LinkedList与ArrayList同属List的范畴,ArrayList实现了RandomAccess接口,通过索引随机访问效率较高,而LinkedList提供了直 ...

  6. 【Django】Django命令(Manager.py)

    django-admin.py startproject mysite 该命令在当前目录创建一个 mysite 目录. django-admin.py这个文件在C:\Python27\Lib\site ...

  7. 资料共享平台----nabcd

    知识共享平台NABCD模型 N(need)需求 大一新生刚刚开始大学生活,不适应大学学习生活的节奏,并且课堂上知识容量大.密度高,学生不能立刻掌握所学知识点,同时,网上资料冗杂繁复,指向性不强,导致学 ...

  8. 使用Ninject+Moq在单元测试中抽象数据访问层

    一.测试方法的业务逻辑时,通常都需要从数据库读取测试数据,但是每次初始化数据库数据都很麻烦,也会影响到其它业务对数据的访问,怎样抽象数据访问层呢?就是用Moq去模拟数据访问的逻辑     二.步骤如下 ...

  9. 02.JSP的3个编译指令

    本章介绍JSP的3个编译指令,在JSP中常见的编译指令有如下3个:         1.page:用于针对当前页面的指令.         2.include:用于指定包含另一个页面.         ...

  10. 【LCA】CodeForce #326 Div.2 E:Duff in the Army

    C. Duff in the Army Recently Duff has been a soldier in the army. Malek is her commander. Their coun ...