Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lanhaiyang/hpslidesegmentview
HPSlideSegmentView 滑动悬停和侧滑框架
https://github.com/lanhaiyang/hpslidesegmentview
ios objective-c
Last synced: 3 months ago
JSON representation
HPSlideSegmentView 滑动悬停和侧滑框架
- Host: GitHub
- URL: https://github.com/lanhaiyang/hpslidesegmentview
- Owner: lanhaiyang
- License: mit
- Created: 2017-06-29T05:55:43.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-08-12T07:22:52.000Z (over 6 years ago)
- Last Synced: 2024-10-07T21:36:59.669Z (4 months ago)
- Topics: ios, objective-c
- Language: Objective-C
- Homepage:
- Size: 941 KB
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# HPSlideSegmentView
[![CocoaPods Compatible](https://img.shields.io/cocoapods/v/HPSlideSegmentView.svg?style=flat)](https://img.shields.io/cocoapods/v/HPSlideSegmentView.svg) [![Platform](https://img.shields.io/cocoapods/p/HPSlideSegmentView.svg?style=flat)](https://img.shields.io/cocoapods/v/HPSlideSegmentView.svg)
[![platform](https://img.shields.io/badge/[email protected])](mailto:[email protected]?subject=Lanhaiyang HPSlideSegmentView&body=Hi Lanhaiyang,)### 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 视图滑动模块#### slideSegmenView 里面的 `cacheMaxCount` 属性
缓存个数
小于3默认为3``` objective-c
@property(nonatomic,assign) NSUInteger cacheMaxCount;
```## 第一种样式: 初始化HPSlideSegmentControllerView
![image](https://github.com/lanhaiyang/HPSlideSegmentView/blob/master/README/HPSlideSegmentControllerView.gif)
#### 在 ViewController.h
``` objective-c
# import "HPSlideSegmentControllerView.h"
@interface DemoViewController : HPSlideSegmentControllerView
@end
```
#### 在 ViewController.m- 创建headeView
``` objective-c
UIView *headerView=[[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 200)];
headerView.backgroundColor=[UIColor blueColor];self.headeView=headerView;
//...
//属性设置
//...[self.slideBackgroungView updateLayout];
```
## 第二种样式: 初始化HPSlideSegmentBackgroundView
![image](https://github.com/lanhaiyang/HPSlideSegmentView/blob/master/README/HPSlideSegmentBackgroundView.gif)
#### 创建
``` objective-c
HPSlideSegmentBackgroundView *slideSegmentBackgroundView=[[HPSlideSegmentBackgroundView alloc] initWithFrame:CGRectMake(0, 64, SCREEN_WIDTH, SCREEN_HEIGHT-64)];
[self.view addSubview:slideSegmentBackgroundView];
```## 实现
#### 数据设置
- 告诉我滑模块的内容 告诉父类的`contents`对象
``` objective-c
//NSString 数据源
self.slideBackgroungView.contents=self.dataSouce;
```### 实现对应的代理
- 现在你需要显示多少数据 告诉``代理
``` objective-c
self.slideBackgroungView.dataSource=self;//代理
-(NSUInteger)hp_slideListWithCount
{
return self.dataSouce.count;//个数
}```
- 在来需要你要在对应模块中显示什么 告诉``代理
``` objective-c
self.slideBackgroungView.slideSegmenView.dataSource=self;```
#### 如果是使用对象名```objective-c
-(UIViewController *)hp_slideListWithViewController:(HPSlideModel *)slideSegmentView index:(NSUInteger)index{
AViewController *aViewController=[slideSegmentView cacheWithClass:[AViewController class] initAction:nil];
aViewController.titleView = _dataSouce[index];
return aViewController;
}
```#### 如果是使用storyboard
```objective-c
-(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` 更新控件的大小或者位置