SHPullAcrossViewController 1.0.0

SHPullAcrossViewController 1.0.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2015年4月

Carvine Software维护。



  • Carvine Software

SHPullAcrossViewController 是一个简单且模块化的视图控制器,可以添加到任何视图,以便用户可以通过将其拖动到顶部来展开另一个视图。它使用 Objective-C 编写并由 Carvine Software 维护。

安装

将此存储库中的 SHPullAcrossViewController 文件夹复制到您的项目。

或者

如果您使用 CocoaPods,只需在 Podfile 中添加一下内容,并使用以下命令安装:

pod 'SHPullAcrossViewController'

然后使用以下方式在任何需要的 .h 文件中包含 SHPullAcrossViewController

$ pod install

然后包含 SHPullAcrossViewController 在您需要的任何 .h 文件中

#include <SHPullAcrossViewController/SHPullAcrossViewController.h>

需求

SHPullAcrossViewController 需要 iOS 7.0 及以上。

基本 API

除非有其他指示,否则使用此库的人应仅与 SHPullAcrossViewController 交互。

初始化

初始化一个 SHPullAcrossViewController

-(instancetype)initWithViewController:(UIViewController*)viewController;

位置

使用 SHPullAcrossVCPositionClosedSHPullAcrossVCPositionOpen 动画 SHPullAcrossView 的位置以打开或关闭

-(void)setPosition:(SHPullAcrossVCPosition)position animated:(BOOL)animated;

隐藏

完全隐藏 SHPullAcrossView(包括 tabView

-(void)setHidden:(BOOL)hidden animated:(BOOL)animated;

标签视图

通过使用属性将您自己的自定义视图作为子视图添加到 tabView

@property (nonatomic, readonly) UIView* tabView;

请不要更改 tabView 的框架。 应该通过使用 tabViewYPostitiontabViewSize 来完成对标签视图的位置和大小进行操作。

如果您的自定义视图被添加到 tabView,并且您希望保留点击打开功能但不添加自己的按钮,请确保将您视图的 userInteractionEnabled 属性设置为 NO

如果您的自定义子视图没有完全覆盖 tabView,建议更改 tabViewbackgroundColor 属性。

高级 API

在某些特定情况下,可能需要更改这些属性。《SHPullAcrossViewController》可以在不了解本节属性的情况下成功使用。

SHPullAcrossView 偏移量

@property (nonatomic) CGFloat closedXOffset;
@property (nonatomic) CGFloat openXOffset;
@property (nonatomic) CGFloat yOffset;

closedXOffset 调整关闭的 SHPullAcrossView 的默认位置。正值开始显示内容视图,而负值将导致 tabView 凸出较少。

openXOffset 调整打开的 SHPullAcrossView 的默认位置。默认零值将完全显示传入的内容视图控制器。正值会进一步打开,而负值将隐藏部分内容视图。

yOffset 调整 SHPullAcrossView 的 y 位置。正值将视图拉下屏幕,而负值将视图推离屏幕顶部。

标签视图的圆角半径

@property (nonatomic) CGFloat tabViewCornerRadius;

tabViewCornerRadius 允许将 tabView 的左下两个角变圆。 tabViewCornerRadius 不应大于 tabView 高度的一半或宽度,取两者中较小者。

内容视图

@property (nonatomic, strong) UIColor* contentViewBackgroundColor;

contentViewBackgroundColor 是传入内容视图控制器的视图坐上的视图中使用的颜色。只有在传入的视图具有透明度时,才需要更改此值。

父视图掩码

父视图掩码是在 SHPullAcrossView 的父视图上方的视图。当将 SHPullAcrossView 移向打开位置时,它会变暗,有效地淡出了其后面的内容。父视图掩码还会阻止对父视图的触摸,并在触摸时收缩 SHPullAcrossView

@property (nonatomic) BOOL showSuperviewMaskWhenOpen;
@property (nonatomic, copy) UIColor* superviewMaskColor;
@property (nonatomic) CGFloat superviewMaskMaxAlpha;

showSuperviewMaskWhenOpen 将显示或隐藏父视图掩码。

superviewMaskColor 是父视图掩码将淡成的颜色。

superviewMaskMaxAlpha 指定 SHPull AcrossView 全部打开时父视图掩码的透明度。0 为完全透明,1 为完全不透明。

阴影

以下所有四个属性都用于修改沿着 tabView 和内容视图边框运行的阴影。它们为 SHPullAcrossView 提供深度和坐在其父视图上方的错觉。

@property (nonatomic) CGFloat shadowOpacity;
@property (nonatomic) CGColorRef shadowColor;
@property (nonatomic) CGFloat shadowRadius;
@property (nonatomic) CGSize shadowOffset;

这些属性与 UIView 层属性的名称相同,并且功能相同。将 shadowOpacity 设置为零将消除任何阴影。

命名法

以下图像显示了每个视图的名称,以防这在文档中不是明确的。

  • 橙色视图 - tabView

  • 蓝色视图 - 内容视图,此视图包含由用户传入的视图控制器。

  • 黑色轮廓 - SHPullAcrossView,此视图包含标签视图和内容视图作为子视图。

Image

特别感谢

特别感谢 John Llurch Zorrilla 及其维护的 SWRevealViewController 项目。 SHPullAcrossViewController 旨在模仿 SWRevealViewController,但实际上是拉一个视图到屏幕上,而不是拉一个视图离开屏幕。此项目从 SWRevealViewController 中汲取灵感并对此进行了扩展。

许可

版权(c)2014-2015 Carvine Software contactus AT carvinesoftware DOT com

在此特此授权,免费向任何获得本软件及其相关文档文件(统称为“软件”)副本的人员,在不受限制的情况下处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,以及允许软件供应方进行此类操作,但须遵守以下条件

上述版权声明和本许可声明应包含在软件的任何副本或主要部分中。

软件按“原样”提供,不承担任何形式的保证,无论是明示的还是隐含的,包括但不限于适用性、特定用途的适用性和非侵权性保证。在任何情况下,作者或版权所有者不得对由此产生的任何索赔、损害或其他责任负责,无论这些责任是基于合同、侵权或其他原因,以及软件本身或使用或以任何其他方式处理软件的结果。