PeekView 1.2.0

PeekView 1.2.0

测试已测试
语言语言 SwiftSwift
许可 MIT
发布最后发布2019年6月
SPM支持 SPM

Huong Do 维护。




PeekView 1.2.0

PeekView

当实现 peek、pop 和 preview 动作与 3D Touch 一起使用时,您可能希望为使用老旧设备访问您的应用程序且不支持 3D Touch 的用户提供此类功能。因此,在此情况下,PeekView 可以用作替代方案。

Preview Screenshot

(请忽略 GIF 的低分辨率。尝试演示以获取实际体验。)

注意

需要改进的地方

  • 更好的 Objective-C 集成方案(当前略显拙劣!)
  • 更好的代码文档
  • 内容视图滚动:更平滑的动画
  • 操作风格:选择功能
  • 如有需要,更多可定制的 UI(欢迎提出建议)
  • 如有必要,修复任何错误

要求

  • iOS 8 及以上版本
  • Swift 4.2 & Xcode 10
  • 如果您希望使用 Swift 2.3,请查看分支 swift23

开始使用

使用 CocoaPods 进行安装

只需在您的 pod 文件中添加以下行

pod 'PeekView'

手动安装

将名为 Source 的文件夹拖放到您的项目中即可。

用法

  • UILongPressGestureRecognizer 添加到您想要预览的视图(例如表格视图单元格、图像、超文本等)
  • 创建一个 UIViewController 实例作为您预览视图的内容;然后设置您希望的内容视图框架。建议在内容视图的左右边距处都留出 15px 的内边距。
  • 如果想要包含预览操作,准备一个包含按钮标题和其预览样式的数组。不要忘记为每个按钮的点击操作准备完成处理程序。

示例代码片段

  let options = [ 
    PeekViewAction(title: "Option 1", style: .Destructive), 
    PeekViewAction(title: "Option 2", style: .Default), 
    PeekViewAction(title: "Option 3", style: .Selected) ]
  PeekView().viewForController(
  parentViewController: self, 
  contentViewController: controller, 
  expectedContentViewFrame: frame, 
  fromGesture: gestureRecognizer, 
  shouldHideStatusBar: true, 
  withOptions: options, 
  completionHandler: { optionIndex in
                    switch optionIndex {
                    case 0:
                        print("Option 1 selected")
                    case 1:
                        print("Option 2 selected")
                    case 2:
                        print("Option 3 selected")
                    default:
                        break
                    }
                })

请确保查看示例代码以更好地理解用法。

关于 Objective-C 的集成,应该使用一个稍微不同的静态函数,其中期望 menuOptions 数组是一个 NSArrayNSDictionary。请查看下面的代码片段

    NSArray *options = @[@{@"Option 1": @(PeekViewActionStyleDefault)},
                         @{@"Option 2": @(PeekViewActionStyleDestructive)}];
    
    UIViewController *contentViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"previewVC"];
    
    [PeekView viewForControllerWithParentViewController:self
                                  contentViewController:contentViewController
                               expectedContentViewFrame:CGRectMake(0, 0, 280, 400)
                                            fromGesture:gesture
                                    shouldHideStatusBar:YES
                                            withOptions:options
                                      completionHandler:nil];

ARC

PeekView 使用 ARC。如果您在非 ARC 项目中使用 PeekView,您需要在每个 PeekView 源文件上设置 -fobjc-arc 编译器标志。要在 Xcode 中设置编译器标志,请转到您的活动目标并选择“编译阶段”选项卡。然后选择 PeekView 源文件,按 Enter 键,输入 -fobjc-arc,然后“完成”以为 PeekView 启用 ARC。

贡献

欢迎提交针对修复bug或改进的贡献。请随意提交一个拉取请求(pull request)。

许可证

PeekView遵循MIT许可证。有关更多信息,请参阅LICENSE文件。