ARSlidingPanel 是一个 iOS 框架,允许您在应用程序中使用类似于 'Google Play Music-like' 的向上滑动面板。
iOS 6.0 及以上
ARSlidingPanel 与 ARC 项目兼容。它依赖于以下 Apple 框架,这些框架应已包含在大多数 Xcode 模板中
为了构建 ARSlidingPanel,您需要最新的开发者工具。旧的 Xcode 版本可能可以工作,但是不会明确维护兼容性。
您还可以直接将以下源文件添加到您的项目中:
将源文件添加到您的项目中
有几种方式可以将 ARSlidingPanel 集成到您的项目中。
1) 将视图控制器从 Xcode 对象库拖放到故事板中
2) 将其类设置为 ARSPContainerController
3) 将从 ARSPContainerController 到将成为您的 Main 视图控制器的视图控制器添加自定义航移。将航移的标识符设置为 ARSPMainViewControllerSegue,将航移的类设置为 ARSPMainViewControllerSegue
4) 将从 ARSPContainerController 到将成为您的面板视图控制器的视图控制器添加自定义航移。将航移的标识符设置为 ARSPPanelViewControllerSegue,将航移的类设置为 ARSPPanelViewControllerSegue
5) 设置可见区域高度、启用拖动、自定义行为、动画速度、阴影等,并尝试!
1) 创建 ARSPContainerController 类的实例,并使用 [ARSPContainerController getController] 函数初始化它
2) 设置主视图控制器
3) 设置面板控制器
4) 设置可见区域高度、启用拖动、自定义行为、动画速度、阴影等,并尽情探索!
ARSPContainerController *containerController = [ARSPContainerController getController];
UIViewController *mainVC = [[UIViewController alloc]init];
[mainVC.view setBackgroundColor:[UIColor blueColor]];
UIViewController *panelVC = [[UIViewController alloc]init];
[panelVC.view setBackgroundColor:[UIColor yellowColor]];
containerController.mainViewController = mainVC;
containerController.panelViewController = panelVC;
containerController.visibleZoneHeight = 80;
containerController.draggingEnabled = YES;
...
ARSPContainerController - 是 ARSlidingPanel 框架的基类。它是两个控制器的容器
mainViewController - 可以是任何自定义视图控制器,导航控制器等。
panelViewController - 面板内的视图控制器。可以是任何自定义视图控制器,导航控制器等。
集成状态后,您可以自定义 ARSPContainerController 的行为。
// setting height of panel in minimized(docked) mode
containerController.visibleZoneHeight = 80;
// setting height of zone where you can swipe down to close(minimize) your panel view controller
containerController.swipableZoneHeight = 130;
// enable dragging of panel view controller
containerController.draggingEnabled = YES;
etc..
请参阅 'ARSPContainerController.h' 文件以查看所有可用设置
有显示/隐藏/关闭面板视图控制器的函数
您还可以添加自定义动画,在显示/隐藏/关闭时执行
您可以将自己的对象设置为 ARSPContainerController 的一个 委托 对象
visibilityStateDelegate - 订阅面板视图控制器的 可见状态变化
-(void)panelControllerChangedVisibilityState:(ARSPVisibilityState)state;
请参阅 'ARSPVisibilityState.h' 以查看所有可见状态列表
dragDelegate - 订阅面板视图控制器的 拖动
-(void)panelControllerWasDragged:(CGFloat)panelControllerVisibility;
享受乐趣!