分页菜单SPPageMenu使用说明书
2017-10-30 本文已影响1982人
S型身材的猪
SPPageMenu的github地址:https://github.com/SPStore/SPPageMenu
一、 效果演示图
(演示图中仅展示了部分功能,更多功能请进入github下载源代码,如果您的网络较慢,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;
以上介绍的属性和方法只是部分的,其余属性和方法相对简单,框架中也有非常详细的注释,这里就不再多做介绍
三、 应用场景
网易

爱奇艺

微博
