HPSlideSegmentView
Pods
#在podfile 中添加
# iOS 版本要7.0 :platform :ios, ‘7.0’
尽量使用最新版本
pod 'HPSlideSegmentView', '~> 0.1.20'
如果pod search HPSlideSegmentView 没有搜索到 和 没有找到最新的版本
打开终端输入
1.pod repo update //等待更新完成在输入下一句
2.rm ~/Library/Caches/CocoaPods/search_index.json //等待更新
3.pod search HPSlideSegmentView //在搜索
创建悬浮效果
在下面的可以看到HPSlideSegmentControllerView
对应的属性的用途:
类结构介绍
HPSlideSegmentControllerView (悬浮置顶)
|
|__ HPSlideSegmentBackgroundView (左右侧滑)
|
|_ HPSlideModuleView (左右侧滑 管理上面模块)
|_ HPSlideSegmentView (左右侧滑 管理下面模块)
HPSlideSegmentManage (管理两个scrollview滑动)
|
|__ HPSlideSegmentControllerView
HPSlideSegmentLogic (管理整体逻辑)
|
|__ HPSlideSegmentBackgroundView
|
|__ HPSlideModuleView
|
|__ HPSlideSegmentView
HPCacheListManage (管理下面模块 view的缓存问题)
|
|__ HPSlideSegmentView
HPKVOMange (管理KVO 的创建和删除)
|
|__ HPSlideSegmentView
属性slideBackgroungView
这个属性主要用于管理左右滑动模块
- slideModuleView 文字滑动模块
- slideSegmenView 视图滑动模块
cacheMaxCount
属性
slideSegmenView 里面的 缓存个数 小于3默认为3
@property(nonatomic,assign) NSUInteger cacheMaxCount;
第一种样式: 初始化HPSlideSegmentControllerView
在 ViewController.h
# import "HPSlideSegmentControllerView.h"
@interface DemoViewController : HPSlideSegmentControllerView
@end
在 ViewController.m
- 创建headeView
UIView *headerView=[[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 200)];
headerView.backgroundColor=[UIColor blueColor];
self.headeView=headerView;
//...
//属性设置
//...
[self.slideBackgroungView updateLayout];
第二种样式: 初始化HPSlideSegmentBackgroundView
创建
HPSlideSegmentBackgroundView *slideSegmentBackgroundView=[[HPSlideSegmentBackgroundView alloc] initWithFrame:CGRectMake(0, 64, SCREEN_WIDTH, SCREEN_HEIGHT-64)];
[self.view addSubview:slideSegmentBackgroundView];
实现
数据设置
- 告诉我滑模块的内容 告诉父类的
contents
对象
//NSString 数据源
self.slideBackgroungView.contents=self.dataSouce;
实现对应的代理
- 现在你需要显示多少数据 告诉
<HPSlideSegmentBackgroundDataSource>
代理
self.slideBackgroungView.dataSource=self;
//代理
-(NSUInteger)hp_slideListWithCount
{
return self.dataSouce.count;//个数
}
- 在来需要你要在对应模块中显示什么 告诉
<HPSlideSegmentViewDataSouce>
代理
self.slideBackgroungView.slideSegmenView.dataSource=self;
如果是使用对象名
-(UIViewController *)hp_slideListWithViewController:(HPSlideModel *)slideSegmentView index:(NSUInteger)index{
AViewController *aViewController=[slideSegmentView cacheWithClass:[AViewController class] initAction:nil];
aViewController.titleView = _dataSouce[index];
return aViewController;
}
如果是使用storyboard
-(UIViewController *)hp_slideListWithViewController:(HPSlideModel *)slideSegmentView index:(NSUInteger)index{
HomeViewController *homeViewController=[slideSegmentView cacheWithStoryboard:self.storyboard identifier:@"HomeViewController" cacheIndex:index];
[homeViewController.view layoutIfNeeded];//更新一下
homeViewController.title = "主页";
return homeViewController;
}
注意
-
如果是非自动布局 创建控件
- 如果是View 上需要在
layoutSubviews
更新控件的大小或者位置 - 如果是ViewController 上需要在
viewDidLayoutSubviews
更新控件的大小或者位置
- 如果是View 上需要在