项目介绍:
SGPagingView
效果图
主要内容的介绍
-
多种指示器长度样式
-
多种指示器滚动样式
-
标题按钮文字渐显效果
-
标题按钮文字缩放效果
SGPagingView 集成
-
1、CocoaPods 导入 pod 'SGPagingView', '~> 1.2.3'
-
2、下载、拖拽 “SGPagingView” 文件夹到工程中
使用参考代码(详细使用, 请参考 Demo)
#define KWidth [UIScreen mainScreen].bounds.size.width
#define KHeight [UIScreen mainScreen].bounds.size.height
#import "ViewController.h"
//导入主头文件
#import "SGPagingView.h"
@interface ViewController ()<SGPageTitleViewDelegate,SGPageContentViewDelegate>
{
SGPageTitleView* pageTitleView;//标题视图
SGPageContentView* pageContentView;//内容视图
NSArray* childViewControllersArr;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSArray* titleArr = @[@"全部的",@"视频",@"有声的",@"图片",@"搞笑段子"];
//指示器
SGPageTitleViewConfigure* configure = [SGPageTitleViewConfigure pageTitleViewConfigure];
//指示器额外增加的宽度:不设置,指示器宽度为标题文字宽度;若设置无限大,则指示器宽度为按钮宽度
configure.indicatorAdditionalWidth = 0;
pageTitleView = [SGPageTitleView pageTitleViewWithFrame:CGRectMake(0, 108, KWidth, 44) delegate:self titleNames:titleArr configure:configure];
[self.view addSubview:pageTitleView];
[self setUpChildViewControllers];
pageContentView = [[SGPageContentView alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(pageTitleView.frame), KWidth, KHeight-CGRectGetMaxY(pageTitleView.frame)) parentVC:self childVCs:childViewControllersArr];
pageContentView.delegatePageContentView = self;
[self.view addSubview:pageContentView];
}
//设置子控制器
-(void)setUpChildViewControllers{
//全部的
UIViewController* allVC = [UIViewController new];
allVC.view.backgroundColor = [UIColor redColor];
//视频
UIViewController* videoVC = [UIViewController new];
videoVC.view.backgroundColor = [UIColor orangeColor];
//有声的
UIViewController* soundVC = [UIViewController new];
soundVC.view.backgroundColor = [UIColor yellowColor];
//图片
UIViewController* picVC = [UIViewController new];
picVC.view.backgroundColor = [UIColor greenColor];
//搞笑段子
UIViewController* jokeVC = [UIViewController new];
jokeVC.view.backgroundColor = [UIColor blueColor];
childViewControllersArr = @[allVC,videoVC,soundVC,picVC,jokeVC];
}
#pragma mark - <SGPageTitleViewDelegate>
//滚动标题视图的代理方法
- (void)pageTitleView:(SGPageTitleView *)pageTitleView selectedIndex:(NSInteger)selectedIndex{
//内容视图滚动
[pageContentView setPageCententViewCurrentIndex:selectedIndex];
}
#pragma mark - <SGPageContentViewDelegate>
//滚动内容视图的代理方法
- (void)pageContentView:(SGPageContentView *)pageContentView progress:(CGFloat)progress originalIndex:(NSInteger)originalIndex targetIndex:(NSInteger)targetIndex{
//标题视图滚动
[pageTitleView setPageTitleViewWithProgress:progress originalIndex:originalIndex targetIndex:targetIndex];
}
@end