IOS横向菜单(TopBar Menu)代码示例 - XNScrollTopBar

原创 2015年07月08日 20:43:29

【2015-7-8】:XNScrollTopBar


      这是我在项目中用到的一个组件,嫌网上那些现成的TopBar菜单都不能满足我的需求,所以我就自己写了一个,主要是用于一个界面上切换多种类型的的数据显示,细微之处也做了处理,例如当某个按钮被屏幕遮挡了一半,此时,当你点击这个按钮时,按钮会自动在屏幕中显示完整,还可以为某个菜单项制定一个附属菜单(二级菜单)。好了,不废话了。


功能使用:

      (1).第一行菜单可自定义菜单数量、菜单样式(宽、高,选中和非选中时的颜色)
      (2).第二行附加菜单可自定义滑块、菜单样式
      (3).两层菜单均可滑动,可设置动画,控制动画速度,通过currentIndexForMaincurrentIndexForSecondary获取当前的位置
      (4).扩展性高,可根据自己的需要进行修改


核心方法:

//  XNScrollTopbar.h
//  XNScrollTopbar
//
//  Created by luohan on 15/7/7.
//  Copyright (c) 2015年 luohan. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

typedefvoid(^Block)(int mainIndex,int SecondaryIndex);
typedefvoid(^AnimationBlock)(int offset,double duration);

@interface XNScrollTopbar :UIView {
   Block block;
   AnimationBlock blockAnimations;
}
/* Main Resource */
@property (nonatomic,retain)NSMutableArray *btnMainArray;
@property (nonatomic,retain)NSMutableArray *mainTitleView;
@property (nonatomic,retain)NSMutableArray *mainTitle;
/* Secondary Resource */
@property (nonatomic,assign)int secondaryMenuWithIndex;
@property (nonatomic,retain)NSMutableArray *btnSecondaryArray;
@property (nonatomic,retain)NSMutableArray *secondaryTitleView;
@property (nonatomic,retain)NSMutableArray *secondaryTitle;
@property (nonatomic,assign)BOOL isSecondaryShow;

/*  CurrentIndex */
@property (nonatomic,assign)int currentIndexForMain;
@property (nonatomic,assign)int currentIndexForSecondary;

/*
 *
 * MainSection method
 */
- (void)setMainInitParam:(int)mainCount width:(int)mainWidth height:(int)mainHeight;
//设置主菜单资源
- (void)setMainSource:(NSMutableArray *)title normal:(NSMutableArray *)normal select:(NSMutableArray *)select;
//设置主菜单按钮不同状态下的颜色
- (void)setMainStatusColor:(UIColor *)normal select:(UIColor *)select;
//是否开启动画,并设置动画时间
- (void)setMainAnmations:(BOOL)enable duration:(double)Duration;
//设置主菜单中的Line宽度
- (void)setLineWidth:(int)width height:(int)height color:(UIColor *)color;
//设置油标的颜色
- (void)setMainWalksColor:(UIColor *)color;

/*
 *
 * SecontarySection method
 */
//是否开启附加菜单
- (void)setSecondaryEnable:(BOOL)enable count:(int)secondaryCount height:(int)secondaryHeight;
//设置附加菜单的资源
- (void)setSecondarySource:(NSMutableArray *)title normal:(NSMutableArray *)normal select:(NSMutableArray *)select;
//设置附加菜单按钮不同状态下的颜色
- (void)setSecondaryStatusColor:(UIColor *)normal select:(UIColor *)select ;
//设置附加菜单油标的颜色
- (void)setSecondaryWalksColor:(UIColor *)color;

/*
 *
 * Block / AnimationBlock
 */
- (void)setBlock:(Block)theblock;
- (void)setAnimationBlock:(AnimationBlock)theblock;

@end




效果图

  

动态效果图




源码下载地址:http://download.csdn.net/download/luohancc/8882665


版权声明:本文为博主原创文章,未经博主允许不得转载。

XNScrollTopBar (Top横向菜单)

  • 2015年07月09日 09:59
  • 179KB
  • 下载

TopBar示例代码

  • 2017年04月03日 20:43
  • 9.53MB
  • 下载

Swift实现类网易云音乐横向scroll menu切换菜单(二)

从这篇文章准备深入分析scroll menu切换菜单的实现,效果图、框架的github链接可见上一篇文章。 CAPSPageMenu.swift的开头为一个@objc公共协议,这个协议的委托由具体...

mm_menu.js(实现鼠标移入横向显示二级菜单效果)

mm_menu.js(实现鼠标移入横向显示二级菜单效果)  /** * mm_menu 20MAR2002 Version 6.0 * Andy Finnell, March...
  • ssp1256
  • ssp1256
  • 2011年04月18日 15:57
  • 595

用ul、li标签创建css横向导航菜单示例

创建CSS样式文本导航条的最简单解决方法也许就是把所有的链接都放在一行文本里,这种方法看起来很合理也很直观。但问题在于把所有的链接都放在一行文本里就很难控制链接之间以及前后的空白。所以,为了避免所有的...

Tkinter菜单Menu的使用示例

本博客是翻译文章。 翻译文章来源于http://effbot.org/tkinterbook/menu.htm。 下面一边看代码一遍学习怎么创建和使用Menu 理解menu的使用方法主要在于下面...

横向菜单实现代码

  • 2016年01月22日 16:50
  • 64KB
  • 下载

IOS学习之路十(仿人人滑动菜单Slide-out Sidebar Menu)

最近滑动菜单比较流行,像facebook和人人等都在使用滑动菜单,今天做了一个小demo大体效果如下: 这次用了一个开源的项目ECSlidingViewCon...

css横向导航菜单代码

  • 2009年09月19日 13:18
  • 47KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IOS横向菜单(TopBar Menu)代码示例 - XNScrollTopBar
举报原因:
原因补充:

(最多只允许输入30个字)