ios专题IOS-OCiOS开发

分页菜单SPPageMenu使用说明书

2017-10-30  本文已影响1982人  S型身材的猪

SPPageMenugithub地址:https://github.com/SPStore/SPPageMenu

一、 效果演示图

(演示图中仅展示了部分功能,更多功能请进入github下载源代码,如果您的网络较慢,gif图可能会延迟加载,您可以先把宝贵的时间浏览其它信息)

Untitled.gif

二、 重难点方法和属性详解

// 以下2个方法都用于创建pagMenu

+ (instancetype)pageMenuWithFrame:(CGRect)frame trackerStyle:(SPPageMenuTrackerStyle)trackerStyle;
- (instancetype)initWithFrame:(CGRect)frame trackerStyle:(SPPageMenuTrackerStyle)trackerStyle;
// 这个方法用于传递数据,items里面可装NSString或UIImage,每个item会根据传的是NSString还是UIImage而展示文字或者图片;selectedItemIndex是选中的item下标,selectedItemIndex不可超过 items的范围

- (void)setItems:(nullable NSArray *)items selectedItemIndex:(NSUInteger)selectedItemIndex;
//  这个属性是被选中的item下标

@property (nonatomic) NSUInteger selectedItemIndex;

//  这个属性命名为“桥梁scrollView”,意味着它是连接SPPageMenu与外界的桥梁。当外界的scrollView在左右切换的时候,需要让跟踪器时刻跟随该scrollView滚动,bridgeScrollView就是外界左右切换的scrollView。只要bridgeScrollView有值了,SPPageMenu会监听bridgeScrollView的滚动状态,从而让跟踪器有跟随效果。如果你忘了设置这个属性或者觉得不好,你还可以在scrollViewDidScroll的代理方法中,调用SPPageMenu的接口“- (void)moveTrackerFollowScrollView:(UIScrollView *)scrollView”。

@property (nonatomic, strong) UIScrollView *bridgeScrollView;
// 这个属性是关闭跟踪器的时刻跟随scrollView的效果,如果关闭了,在外界对bridgeScrollView赋值了或者调用了- (void)moveTrackerFollowScrollView:(UIScrollView *)scrollView的情况下,跟踪器会在scrollView滑动结束的时候才跟踪

@property (nonatomic, assign) BOOL closeTrackerFollowingfMode;
//  这个属性是设置内容的四周边距,例如如果你想让跟踪器距离底部分割线有一段距离,你就可以设置contentInset的底部间距,这里指的内容是不包括底部分割线的。

@property (nonatomic, assign) UIEdgeInsets contentInset;
// 这个方法是为指定的item同时设置图片和文字,参数imagePosition决定图片的位置,分上、下、左、右,ratio是图片所占比例,取值范围0~1,默认是0.5,即图片文字各占一半

- (void)setTitle:(nullable NSString *)title image:(nullable UIImage *)image imagePosition:(SPItemImagePosition)imagePosition imageRatio:(CGFloat)ratio forItemIndex:(NSUInteger)itemIndex;
//  这个方法和上面那个方法类似,只是设置对象不同,上面的方法是为指定item设置,这个方法是为功能按钮设置

- (void)setFunctionButtonTitle:(nullable NSString *)title image:(nullable UIImage *)image imagePosition:(SPItemImagePosition)imagePosition imageRatio:(CGFloat)ratio forState:(UIControlState)state;
//  这个方法在描述bridgeScrollView的时候有提到过,在外界的scrollViewDidScroll代理方法中调用,可以让跟踪器时刻跟随scrollView滑动,如果bridgeScrollView已经赋过值,那这个方法就没必要去调用了。

- (void)moveTrackerFollowScrollView:(UIScrollView *)scrollView;
以上介绍的属性和方法只是部分的,其余属性和方法相对简单,框架中也有非常详细的注释,这里就不再多做介绍

三、 应用场景

网易

A7FD723F-E458-437A-AD3F-D990C8F49C26.jpeg

爱奇艺

09145AB7-9FA8-4442-8E66-28A5D02EB4A6.jpeg

微博

8D4F4543-97C8-43AB-A6ED-152ACC35429D.jpeg
上一篇 下一篇

猜你喜欢

热点阅读