测试已测试 | ✓ |
Lang语言 | Obj-CObjective C |
许可证 | MIT |
发布最后发布 | 2017年11月 |
由 Guillermo RD 维护。
使用 Objective C 的拖曳 ViewController 控制器,在另一个 ViewController 上滑动。
RDGliderViewController 是一个视图控制器,使用一侧作为滑动点来管理可滚动的视图,可以选择从左到右、从上到下、从右到左和从下到上滑动,并通过设置一个偏移数组作为百分比值来确定滑动视图的步数,具体请参阅以下说明。
学习如何使用 RDGliderViewController 的一个好方法是查看示例应用程序。还要查看测试,以了解更多用法。
要运行示例项目,克隆仓库,并打开 ./Example/GliderSample.xcodeproj
RDGliderViewController 通过 CocoaPods 提供,CocoaPods 是 Swift 和 Objective-C Cocoa 项目的依赖项管理器。要安装,
只需将以下行添加到您的 Podfile
pod 'RDGliderViewController'
Carthage 是一个去中心化的依赖管理器,可以将您的依赖项构建成本地框架并为您提供二进制框架。
您可以使用 Homebrew 安装 Carthage,然后在 Xcode项目中将 RDGliderViewController 集成到您的项目中,只需在您的 Cartfile 中添加以下行即可。
github "gelemias/RDGliderViewController"
对于复古风格的安装,您可以直接将 RDGliderViewController
和 RDScrollView
的 头文件 和 实现 文件添加到您的项目中。
下载最新代码版本或将存储库添加到您的 git-tracked 项目中作为 Git 子模块。
将文件夹 RDGliderViewController/
拖放到您的项目中,并确保选择 如果需要则复制项。
在您的类开头添加 #import "RDGliderViewController.h"
。
RDGliderViewController 是一个非常容易使用的控制器,主要依赖于三个值来工作:确定滚动侧的 方向类型、表示扩展和收缩步骤的 偏移量列表 以及内容本身,这是一个完全独立的视图控制器。
使用以下自定义初始化函数实例化 RDGliderViewController
- (instancetype)initOn:(nonnull UIViewController *)parent WithContent:(nonnull RDGliderContentViewController *)content type:(RDScrollViewOrientationType)type AndOffsets:(nonnull NSArray
例如:
RDGliderViewController *gliderVC = [[RDGliderViewController alloc] initOn:self
WithContent:[UIViewController new]
type:RDScrollViewOrientationRightToLeft
AndOffsets:@[@0.2, @0.5, @1]];
这就是您需要做的所有事情。如果您运行您的应用程序,视图控制器样本应从右侧开始滚动到 self
视图控制器。
内容视图控制器应继承自RDGliderContentViewController以在旋转时正确调整大小,被视为此应用的子视图控制器。
#import "RDGliderContentViewController.h"
@interface ContentViewController : RDGliderContentViewController
// Your content class Here
@end
提到不需要太多,只需记住,如果未为视图定义大小,RDGliderViewController将自动调整大小以匹配容器的大小。
内容视图控制器之后也可以,但始终沿偏移和方向,因为这三个属性彼此依赖。
-(void)setContentViewController:(nonnull RDGliderContentViewController *)contentViewController type:(RDScrollViewOrientationType)type offsets:(nonnull NSArrayNSNumberduced)
RDScrollViewOrientationType
表示显示的四边及滑动方向。
typedef NS_ENUM(unsigned int, RDScrollViewOrientationType) {
RDScrollViewOrientationUnknown = 0,
RDScrollViewOrientationLeftToRight,
RDScrollViewOrientationBottomToTop,
RDScrollViewOrientationRightToLeft,
RDScrollViewOrientationTopToBottom
};
如果内容视图控制器定义了固定大小,则在旋转期间将尊重此大小,对于水平滚动(从左到右和从右到左)将调整宽度,对于垂直(从下到上和从上到下)将调整高度
此NSArray<s;NSNumber >
*offsets*属性是当展开/折叠或拖动列表时用于步进的步骤列表,以百分比%的形式与内容视图控制器长度相关,例如,对于长度为400px的列表[0, 0.5, 1],偏移步骤将为[0px, 200px, 400px]
offsets[OffsetIndex].floatValue * contentViewController.lenght
对于逆方向类型(RDScrollViewOrientationLeftToRight和RDScrollViewOrientationTopToBottom),偏移量列表也将反转,例如,对于列表[0.2, 0.4, 0.6, 1],将返回[0.8, 0.6, 0.4, 0]
默认情况下,RDGliderViewController可拖动,但设置0.0f%
的偏移量时,将在起始点之外显示在屏幕上,要增加列表中视图的位置一个,可以使用
- (void)expand;
降低RDGliderViewController在偏移量列表中的位置一个
- (void)collapse;
和close,它将视图直接移动到第一个偏移量,这是默认位置
- (void)close;
所有这些方法只简单地更改在调用此方法时的偏移索引。
- (void)changeOffsetTo:(NSUInteger)offsetIndex animated:(BOOL)animated;
RDGliderViewController在MIT许可下发布。有关详细信息,请参阅LICENSE。
有关详细信息,请参阅CHANGELOG。