DrawerView 1.3.8

DrawerView 1.3.8

Mikko Välimäki维护。




  • Mikko Välimäki

Sample

DrawerView

一个可以直接在任何应用的任何位置使用的下拉视图。

Sample Sample Sample

易于使用

DrawerView是一个简单的下拉视图,您可以将它添加到您的应用程序中。无需重新结构视图或视图控制器以支持它。这也使您能够拥有多个容纳不同内容并可以在iOS Maps中相同方式切换的下拉视图。

自动支持滚动视图

DrawerView处理子视图交互,因此它为滚动视图提供了专门的支持。这在实际中的意义是,您可以在其中添加滚动视图(或表格视图),DrawerView将处理从子视图滚动到下拉视图的过渡。

自定义

视觉:DrawerView默认支持使用UIBlurEffect作为背景。然而,任何UIColor都是支持的。只需记得将backgroundEffect设置为nil。除了背景外,还可以自定义圆角、边框和阴影。

位置:抽屉有四个不同的位置:关闭折叠部分打开打开。这些位置均可自定义,您还可以定义启用位置。打开位置使用 systemLayoutSizeFitting 进行评估,并由给定的 topMargin 限制。

底部间隔:为了支持屏幕底部有刘海的 iOS 设备,您可以修改 insetAdjustmentBehavior 以自动确定正确的间隔。您也可以将其设置为使用父视图的安全区域或设置为固定值。由于内容与刘海重叠,您可以修改 contentVisibilityBehavior 以定义当折叠时哪些视图应被隐藏。默认情况下,这两个属性被设置为自动。

可见性:您还可以设置抽屉的可见性。这是一个与位置不同的属性,但在行为上与抽屉关闭时相同。这样做的目的是帮助您在抽屉再次变得可见时,不必记住先前的位置。这使您能够同时有多个抽屉,但一次只有一个抽屉可见。

安装

您可以使用 Carthage 和 CocoaPods 安装 DrawerView。在使用 CocoaPods 时,将以下内容添加到您的 Podfile

pod "DrawerView"

对于 Carthage,将以下内容添加到您的 Cartfile

github "mkko/DrawerView"

使用

DrawerView 会尝试自动占据将要添加到的视图。它使用自动布局来设置其位置,因此您可以将其附加到其他视图上。您可以通过故事板或编程方式来设置它。

设置

以下列出了一些可用的设置方式。设置示例的动手实验可以在包含的 示例项目 中找到。

在故事板中设置

故事板以两种方式提供支持:作为嵌入视图和作为子视图控制器。

作为子视图控制器

您可以将一个视图控制器的内容作为抽屉添加到另一个视图控制器中,几乎和您使用“容器视图”的方式一样。

  1. 创建两个视图控制器。
  2. 为抽屉视图控制器定义一个故事板ID(例如,“DrawerViewController”)
  3. 在代码中进行连接
override func viewDidLoad() {
    super.viewDidLoad()

    let drawerViewController = self.storyboard!.instantiateViewController(withIdentifier: "DrawerViewController")
    self.addDrawerView(withViewController: drawerViewController)
}
作为嵌入视图
  1. 在故事板中创建一个不在视图控制器视图层次结构中的视图。为此,例如,您可以直接将新视图拖动到文档概要中。
  2. 将视图的自定义类设置为DrawerView
  3. 将新生成的视图的containerView OutputStream连接到希望将其添加到的视图(例如,视图控制器根视图)。

编程设置

编程设置几乎和设置任何UIView一样:您创建一个,设置子视图,并将其添加到视图。以下是一个示例。

override func viewDidLoad() {
    super.viewDidLoad()

    let drawerView = DrawerView()
    drawerView.attachTo(view: self.view)

    // Set up the drawer here
    drawerView.snapPositions = [.collapsed, .partiallyOpen]
}