美文网首页IOSiOS-swift
封装一个水平菜单

封装一个水平菜单

作者: 红酒佳坊 | 来源:发表于2016-01-08 15:50 被阅读156次

分步阅读

开发比较大的软件需要建立菜单栏,菜单栏可以让用户快速查询选择自己所需要的事物。常见的菜单栏是由一系列按钮和图片组合而成。创建时需要多少个菜单项就手动添加多少个按钮和图片。如果菜单项多就选择循环创建。当前经验是封装一个水平方向的列表菜单栏类,类被封装后可以省掉每次使用时都需要重新创建、排版的复杂过程。大大提高开发效率。

工具/原料

Mac OS X操作系统

Xcode编译器

方法/步骤

创建工程项目和视图控制器

1、创建一个empty(空的)工程项目,新建一个UIViewController;

2、选中工程,右键-New File…选择“Cocoa Touch Class”-Next,给个合理的名称ViewController,再Next完成;

3、在AppDelegate.m文件包含#import "ViewController.h";

4、初始化创建ViewController的视图控制器,并用导航栏控制器包含。将之设置为根视图控制器。

创建封装水平菜单栏类

1、选中工程,右键-New File…选择“Cocoa Touch Class”-Next;

2、选择继承于UIView的视图,命名为:HorizontalMenuView;

3、Next后选择存储路径(一般默认),最后Create创建完成。

创建HorizontalMenuView的属性和方法

1、打开HorizontalMenuView.h文件;

2、创建菜单名数组和设置菜单名方法setNameWithArray。

写出setNameWithArray实现方法

1、在Xcode6.0以前UIView的m文件会有initWithFrame方法,而Xcode6.0就没有了,所以可以考虑把代码写在drawRect方法里面;

2、现在独立创建了设置菜单名方法,所以添加按钮等代码就转移到setNameWithArray实现方法内;

3、将设置的值赋值给菜单名全局变量_menuArray。

为HorizontalMenuView显示控件

1、根据_menuArray元素个数,for创建按钮;

2、设置按钮标识tag;

3、设置按钮字体大小 颜色 状态;

4、添加按钮点击响应事件;

5、添加分割线、底部划线和当前被选中的标识下划线。

实现按钮点击响应事件

1、遍历获取self所有子类;

2、判断是否是按钮类[UIButton class];

3、如果是UIButton则根据被点击的sender.tag设置各个按钮的使能;

4、根据被点击的sender.tag动画移动标识下划线。

添加协议代理,实现传值

1、在HorizontalMenuView.h添加协议;

2、在协议内写协议方法获取被选中菜单;

3、创建协议委托;

4、在HorizontalMenuView.m的点击实现方法获取下标值。

使用方法

1、在ViewController.m包含#import "HorizontalMenuView.h";

2、添加协议委托代理;

3、创建并初始化HorizontalMenuView,添加至视图;

4、设置菜单名数组;

5、设置委托代理;

6、实现协议方法。

代码运行效果如图

注意事项

当前使用Mac OS X 版本为10.9.5

当前使用Xcode版本为5.1.1和6.0

相关文章

  • 封装一个水平菜单

    分步阅读 开发比较大的软件需要建立菜单栏,菜单栏可以让用户快速查询选择自己所需要的事物。常见的菜单栏是由一系列按钮...

  • 菜单封装

    这个菜单选择的代码 点击滚动 滑动滚动 //// HWPageMenuView.swift// swift项...

  • 003、表格菜单和树形菜单

    今天我们一起了解了解表格菜单和树形菜单 01表格菜单 表格菜单分为水平表格菜单和垂直表格菜单。 水平表格菜单,常用...

  • iOS 封装的水平滚动菜单栏

    效果图: 创建一个HorizontalMenuView的类,继承 UIView .m文件的实现,需要分割线的可以加...

  • 人人可实现的滑动菜单二

    上一篇文章中,是把滑动菜单封装成一个View,当成一个View来使用。这一节中,我们把滑动菜单封装成ViewCon...

  • Menu菜单-水平

    已经封装好 导入这个文件就可以使用 .h文件 .m文件 使用实例 [原文] http://www.jianshu....

  • 05-JQuery页面导航

    一、普通二级下拉菜单 二、无限级下拉菜单 三、水平伸缩菜单 四、TreeView菜单

  • (四)iOS 实战项目开发:团购之下拉菜单的封装

    搜索城市结果的选择 封装下拉二级菜单的思路 封装下拉二级菜单的实现 完整的二级下拉菜单 搜索城市结果的选择 创建C...

  • Design之Toolbar的使用

    ToolBar封装在BaseActivity(包括菜单menu) Toolbar中修改menu菜单字体大小和颜色 ...

  • Vue 树形菜单封装

    item.vue index.vue 使用 数据递归可以看看我另一篇文章使用递归实现树状菜单

网友评论

    本文标题:封装一个水平菜单

    本文链接:https://www.haomeiwen.com/subject/ccofkttx.html