登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

A easy navigationBar menuView for iOS

[复制链接]
来自: ijt_family 分类: iOS精品源码 上传时间: 2017-12-13 11:26:50
Tag:

项目介绍:

SCNavigationMenuView

功能

通过点击NavigationTitle,我们可以切换不同的内容,写了一个控件SCNavigationMenuView,实现如下图效果。
Demo动图.gif

优点

  1. 可以通过更改数据源,动态的改变选项数量和文字内容;

  2. 当数据源数量小于等于1时,自动隐藏小三角图标,文字自动居中,且title不可点击;

  3. 下拉出的Menu的Cell样式可以自定义。

使用方法

1.初始化

SCNavigationMenuView  *menuView = [[SCNavigationMenuView alloc] initWithNavigationMenuItems:nil];
menuView.delegate = self;  // 设置点击menuCell回调的代理
[menuView displayMenuInView:self.view];  // 将menuView展示在哪个view上,self指当前ViwController

2. 设置数据源

NSMutableArray *array = [NSMutableArray array];
SCMenuItem *item1 = [SCMenuItem new];
item1.title1 = @"体育内容";
item1.title2 = @"体育";
[array addObject:item1];
    
SCMenuItem *item2 = [SCMenuItem new];
item2.title1 = @"科技内容";
item2.title2 = @"科技";
[array addObject:item2];

// 设置数据源(数据源格式为实现SCNavigationMenuItemProtocol的对象,)后
// 控件会自动更新navigationTitle和menuCell的数据内容
// 数据源可以多次设置
[self.menuView setNavigationMenuItems:array];

3.回调方法

#pragma mark - SCNavigationMenuViewDelegate
// 点击menuCell的回调方法
- (void)navigationMenuView:(SCNavigationMenuView *)navigationMenuView didSelectItemAtIndex:(NSUInteger)index
{
    if (index % 2 == 0) {
        self.view.backgroundColor = [UIColor blueColor];
    } else {
        self.view.backgroundColor = [UIColor redColor];
    }
}

4.自定义menuCell需要使用的初始化方法

// 初始化方法
// navigationMenuItems为数据源
// menuCellClass自定义menuCell的Class,这个类需要实现SCNavigationMenuCellProtocol协议
- (instancetype)initWithNavigationMenuItems:(NSArray<SCNavigationMenuItemProtocol> *)navigationMenuItems menuCellClass:(Class)menuCellClass;

5.协议

5.1 数据源需要实现这个协议
@protocol SCNavigationMenuItemProtocol <NSObject>

@required

- (NSString *)navigationTitle;
- (NSString *)menuTitle;

@optional

- (NSString *)menuSelectedTitle;

@end
5.2 自定义MenuCell,需要实现这个协议
@protocol SCNavigationMenuCellProtocol <NSObject>

@required

// 返回cell的高度  例如:@(44)
// navigationMenuItem 数据源
// reuseID cell重用ID
+ (NSNumber *)cellHeightWithNavigationMenuItem:(id<SCNavigationMenuItemProtocol>)navigationMenuItem;
+ (NSString *)reuseID;

// 配置cell的样式和内容
// navigationMenuItem 数据源
// selected cell是否被选中
- (void)configCellWithNavigationMenuItem:(id<SCNavigationMenuItemProtocol>)navigationMenuItem selected:(BOOL)selected;

@end

结束

SCNavigationMenuView使用接口简单方便,可以通过Pod导入到项目中。对于这个小控件有什么建议或者意见的话,可以向我反馈,喜欢的话,也可以通过star来鼓励下我,谢谢大家捧场。

相关源码推荐:

我来说两句
*滑动验证:
所有评论(5)
逆鳞九霄 2017-12-14 14:24:10
楼主威武啊,Code4App有你更给力!
回复
逆鳞九霄 2017-12-14 14:24:13
感谢分享,Code4App有你更精彩:)
回复
BlueManlove 2017-12-14 14:24:22
mark,收藏了
回复
littleRed 2017-12-14 14:25:49
感谢大神~
回复
phoiu 2017-12-14 14:26:12
帮帮顶顶!!
回复
AlonMessi 2017-12-14 14:27:31
相当不错,感谢无私分享精神!
回复
hellokenken 2017-12-14 14:30:27
code4app好的内容真的很多~赞
回复
kengsir 2017-12-14 14:32:39
膜拜大神~
回复
code4app热心网友 2017-12-14 14:36:22
正需要啊,感谢楼主无私分享!
回复
提取码:  下载次数:63 状态:已购或VIP 售价:0(原价:15)金钱 下载权限:初级码农 
597 0 63
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,742864542

如何获得代码达人称号?

代码贡献英雄榜
用户名 下载数
通过邮件订阅最新 Code4App 信息
上一条 /4 下一条
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

快速回复 返回顶部 返回列表