测试已测试 | ✓ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2017年11月 |
SwiftSwift版本 | 3.0 |
SPM支持SPM | ✓ |
由Guillermo RD维护。
使用Swift控制可拖拽ViewController在另一个ViewController上滑动的控件,如果您在寻找Objective-C的等价物,请访问这里。
RDGlierViewController是一个视图控制器,它通过使用一侧作为滑动点来管理一个可滚动的视图,可以选择从左到右、从上到下、从右到左和从下到上,并为偏移量设置一个数组作为百分比值以确定滑动的视图步长,如下所述。
了解如何使用RDGlierViewController的一个好方法是通过示例应用程序。还可以查看测试,以更全面地了解使用方法。
要运行示例项目,克隆仓库,并打开./Example/GliderSample.xcodeproj
RDGlierViewController可通过CocoaPods获得,它是一个用于Swift和Objective-C Cocoa项目的依赖关系管理器。要安装
它,只需将以下行添加到您的Podfile中
pod 'RDGliderViewController-Swift'
Carthage是一个去中心化的依赖关系管理器,它构建您的依赖项并提供二进制框架。
您可以使用Homebrew安装Carthage,然后通过将以下行添加到您的Cartfile将RDGlierViewController-Swift集成到您的Xcode项目中
github "gelemias/RDGliderViewController-Swift"
对于一种老式的安装方式,您可以直接将RDGlierViewController
和RDScrollView
的header
和implementation
文件添加到您的项目中。
下载最新版本的代码或将其添加为git子模块到您的git跟踪项目中。
将RDGlierViewController/
文件夹拖放到您的项目中,并确保选择Copy items if needed
。
在您的类开头添加#import RDGlierViewController
。
RDGlierViewController是一个非常容易使用的控制器,主要依赖于三个值来工作,即确定滚动侧的方向类型,代表扩展和收缩步骤的偏移量列表,以及本身是完全独立的视图控制器的内容。
使用以下自定义初始化方法实例化RDGlierViewController
public init(parent: UIViewController, WithContent content: RDGlierContentViewController, AndType type: RDScrollViewOrientationType, WithOffsets offsets: [NSNumber])
例如。
let content:RDGliderContentViewController = RDGliderContentViewController.init()
self.rightToLeftGlideVC = RDGliderViewController.init(parent: self,
WithContent: content,
AndType: .RDScrollViewOrientationRightToLeft,
WithOffsets: [0, 0.6, 1])
这就是您需要做的全部,如果运行您的应用程序,UIViewController的一个实例应该可以滚动到self
视图控制器上。
内容视图控制器应该继承自RDGliderContentViewController以在旋转时正确调整大小,被视为此视图控制器的子视图控制器。
class ContentViewController: RDGliderContentViewController {
// Your content class Here
}
需要注意的是,不需要更多,只需要记住,如果您没有为视图定义大小,RDGliderViewController将调整其大小以匹配容器的大小。
内容视图控制器也可以之后调整,但总是沿偏移量和方向调整,因为这三个属性是相互依赖的。
public func setContentViewController(Content content: RDGliderContentViewController, AndType type: RDScrollViewOrientationType, WithOffsets offsets: [NSNumber])
RDScrollViewOrientationType
代表显示的四个方位加滑动方向。
public enum RDScrollViewOrientationType: Int {
case RDScrollViewOrientationUnknown
case RDScrollViewOrientationLeftToRight
case RDScrollViewOrientationBottomToTop
case RDScrollViewOrientationRightToLeft
case RDScrollViewOrientationTopToBottom
}
如果内容视图控制器定义了一个固定大小,此大小将在旋转期间被尊重,对于水平滚动(从左到右和从右到左)将调整宽度,而对于垂直(从下到上和从上到下)将调整高度。
这个offsets: [NSNumber]
属性是用于扩展/折叠或拖动列表时表示的步骤列表,这些步骤表示为与内容视图控制器长度的百分比%,例如,对于长度为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%
时,它将在起始点超出屏幕,要通过列表中偏移量列表增加视图的一个位置使用
public func expand()
要减少RDGliderViewController在列表中偏移量列表的位置一个位置
public func collapse()
以及关闭,它将视图直接移动到第一个偏移量,这是默认位置
public func close()
所有这些方法简单地在调用该方法时更改offsetIndex。
public func changeOffset(to offsetIndex: Int, animated: Bool)
RDGliderViewController遵循MIT许可。请参阅许可协议以获取详细信息。
请参阅更改记录以获取详细信息。