TYSlidePageScrollView使用小结

      最近工作中用到了这个三方控件,发现github上给的Demo中有点繁琐,记录一下使用心得。废话少说先看图:

TYSlidePageScrollView使用小结_第1张图片
效果图

我们使用过程中,并没有使用headView,界面比较简洁。我们这里使用了TYSlidePageScrollView来实现的方法,也就是github上的Demo中CustomView2Controller.h中使用的方法,并没有用TYSlidePageScrollViewController来实现,下面记录一下使用方法:

1.肯定是初始化:

#import "TYSlidePageScrollView.h"

#import "TYTitlePageTab.h" // 添加头文件,不多说了

@property (strong,nonatomic) TYSlidePageScrollView *slidePage; //声明了一个全局的,方便使用

@property (nonatomic,strong) TYTitlePageTab *titleBar; //对应的titleBar就是群、讨论组、协作组

//添加slidePage viewDidload里面

_slidePage = [[TYSlidePageScrollView alloc]initWithFrame:self.view.bounds];

_slidePage.pageTabBarIsStopOnTop = YES;

_slidePage.pageTabBarStopOnTopHeight = 0;

_slidePage.pageTabBarIsStopOnTop = 0;

_slidePage.dataSource = self;

_slidePage.delegate = self;

[self.view addSubview:_slidePage];

这几个属性设置根据你自己的需求定吧,也没什么难得。

//添加titleBar

self.titleBar = [[TYTitlePageTab alloc] initWithTitleArray:@[@"群", @"讨论组", @"协作组"] numArray:@[@"0",@"1",@"2"]];

self.titleBar.frame =  CGRectMake(0, 0, ScreenWidth, 45);

_titleBar.contentSize = CGSizeMake(ScreenWidth,40); //可以设置成大于屏幕

_titleBar.bounces = YES;

_titleBar.showsHorizontalScrollIndicator = NO;

_titleBar.backgroundColor = [UIColor whiteColor];

_titleBar.layer.borderColor = [UIColor lightGrayColor].CGColor;

_titleBar.layer.borderWidth = 0.5;

_slidePage.pageTabBar = _titleBar;

这个titleBar总之设置好把它加到_slidePage上面就OK了,这里说明一下,contentSize的使用,比如你想设置4个分栏,然后每个分栏是3分之一的屏幕那么宽,那么你把contentSize设置宽度为ScreenWidth+ScreenWidth/3就可以了。

一般在你数据请求回来之后,你再[_slidePage reloadData];一下,就是刷新一下页面。

2.TYSlidePageScrollView的代理方法:

这玩意和tableview类似,熟悉了它的代理方法就知道该怎么使用它了。当reloadData的时候就会按照生命周期来一次调用它的代理方法,下面说一下重点几个代理方法的作用:

//返回总共有几个分栏,这个so easy理解

- (NSInteger)numberOfPageViewOnSlidePageScrollView

{

return 3;

}

//返回每个分栏底下的ScrollView的方法

- (UIScrollView *)slidePageScrollView:(TYSlidePageScrollView *)slidePageScrollView pageVerticalScrollViewForIndex:(NSInteger)index

{

return self.tableView;

}

这个方法和Demo中的使用有点不一样,解释一下Demo中的思路:比如有3个分栏,它是在初始化的时候创建了3个自定义controller(自己写了个TableViewController,继承自UITableViewController),并且加到当前controller也就是self的孩子VC中:[self addChildViewController:tableViewVC];然后在上面这个代理方法中返回了:

TableViewController *tableViewVC = self.childViewControllers[index];

return tableViewVC.tableView;

相当于把TableViewController中的tableview拿出来,return了,我觉得有点繁琐。其实这三方控件就想让你返回一个scrollView的子类,你随便自己定义一个scrollView的子类对象返回就行了,没必要非得再弄个controller出来。MVC的开发架构下,弄好几个controller不好看,逻辑不太清楚。

小结:基本上这个控件的简单实用就这样了,至于第二个代理方法返回的tableview也好,scrollView也好,再怎么用,有自己的代理,自己看着办怎么写吧。如果你需要添加HeadView这玩意,就像github的Demo中的,也很简单,在初始化的时候设置一下就行了。

- (void)addHeaderView

{

UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, CGRectGetWidth(_slidePageScrollView.frame), 200)];

imageView.image = [UIImage imageNamed:@"CYLoLi"];

imageView.contentMode = UIViewContentModeScaleAspectFill;

UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(10, 75, 100, 30)];

label.textColor = [UIColor orangeColor];

label.text = @"headerView";

[imageView addSubview:label];

_slidePageScrollView.headerView = imageView;

}/*Demo中的方法,关键你的imageView加到_slidePageScrollView.headerView上就好了*/

你可能感兴趣的:(TYSlidePageScrollView使用小结)