HPSlideSegmentView 0.1.20

HPSlideSegmentView 0.1.20

TestsTested
LangLanguage Obj-CObjective C
License MIT
ReleasedLast Release Jun 2018

Maintained by lanhaiyang.


Downloads

Total13
Week0
Month0

Installs

Apps2
powered by Segment

GitHub

Stars0
Watchers1
Forks0
Issues0
Contributors1
Pull Requests0

Code

Files21
LOCLines of Code 2,128


  • By
  • lanhaiyang

HPSlideSegmentView

CocoaPods Compatible Platform
platform

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对应的属性的用途:

HPSlideSegmentView

类结构介绍

HPSlideSegmentControllerView (悬浮置顶)
	|
	|__ HPSlideSegmentBackgroundView (左右侧滑)
			|
			|_ HPSlideModuleView  (左右侧滑 管理上面模块)
			|_ HPSlideSegmentView (左右侧滑 管理下面模块)
			
HPSlideSegmentManage (管理两个scrollview滑动)
	|
	|__ HPSlideSegmentControllerView
	
HPSlideSegmentLogic (管理整体逻辑)
	|
	|__ HPSlideSegmentBackgroundView
	|
	|__ HPSlideModuleView
	|
	|__ HPSlideSegmentView
	
HPCacheListManage (管理下面模块 view的缓存问题)
	|
	|__ HPSlideSegmentView
	
HPKVOMange	(管理KVO 的创建和删除)
	|
	|__ HPSlideSegmentView
	

属性slideBackgroungView

这个属性主要用于管理左右滑动模块
  • slideModuleView 文字滑动模块
  • slideSegmenView 视图滑动模块

slideSegmenView 里面的 cacheMaxCount 属性

缓存个数 小于3默认为3

@property(nonatomic,assign) NSUInteger cacheMaxCount;

第一种样式: 初始化HPSlideSegmentControllerView

image

在 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

image

创建

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 更新控件的大小或者位置