测试已测试 | ✓ |
Lang语言 | SwiftSwift |
许可证 | MIT |
Released最后发布 | 2018年3月 |
SPM支持SPM | ✗ |
由Vadym Markov、Christoffer Winterkvist、Hyper Interaktiv AS维护。
在寻找在iOS应用中显示内容的最容易方式吗?那么您就找到了正确的地方。演示文稿将帮助您以最小的努力制作教程、发布说明和任何类型的动画页面。
演示文稿具有以下特性
UIViewController
作为幻灯片。SlideController是您在页面上使用自定义定位和动画功能的良好伙伴。演示文稿在iPhone和iPad上均有效。您可以使用Swift和Objective-C使用它。
尝试我们的一些演示示例来查看其工作方式
pod try Presentation
import Presentation
let viewController1 = UIViewController()
viewController1.title = "Controller A"
let viewController2 = UIViewController()
viewController2.title = "Controller B"
let presentationController = PresentationController(pages: [viewController1, viewController2])
如果这就是您需要的所有内容,请查看Pages。
定位
是百分比基准的;您可以使用left
、right
、top
、bottom
来设置位置。
let position = Position(left: 0.3, top: 0.4)
Content
视图模型是位于UIView
和定位
之间的一层。默认情况下,当前位置是视图的中心,但也可以将其更改到视图的原点。
let view = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 100))
let position = Position(left: 0.3, top: 0.4)
let centeredContent = Content(view: label, position: position)
let originContent = Content(view: label, position: position, centered: false)
let label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 100))
label.text = "Slide 1"
let position = Position(left: 0.3, top: 0.4)
let content = Content(view: label, position: position)
let controller = SlideController(contents: [content])
presentationController.add([controller])
let contents = ["Slide 1", "Slide 2", "Slide 3"].map { title -> Content in
let label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 100))
label.text = title
let position = Position(left: 0.3, top: 0.4)
return Content(view: label, position: position)
}
var slides = [SlideController]()
for index in 0...2 {
let content = contents[index]
let controller = SlideController(contents: [content])
let animation = TransitionAnimation(
content: content,
destination: Position(left: 0.5, top: content.initialPosition.top),
duration: 2.0,
dumping: 0.8,
reflective: true)
controller.add(animations: [animation])
slides.append(controller)
}
presentationController.add(slides)
let imageView = UIImageView(image: UIImage(named: "image"))
let content = Content(view: imageView, position: Position(left: -0.3, top: 0.2))
presentationController.addToBackground([content])
// Add pages animations
presentationController.add(animations: [
TransitionAnimation(content: content, destination: Position(left: 0.2, top: 0.2))],
forPage: 0)
presentationController.add(animations: [
TransitionAnimation(content: content, destination: Position(left: 0.3, top: 0.2))],
forPage: 1)
演示文稿通过CocoaPods提供。要安装它,只需将以下行添加到您的Podfile中
pod 'Presentation'
演示文稿也通过Carthage提供
要安装,只需将以下内容写入Cartfile中
github "hyperoslo/Presentation"
演示文稿的实现离不开以下组件的帮助
Pages:设置UIPageViewController
的最简单方式
Cartography:帮助您以声明性的方式设置Auto Layout约束,无需任何字符串类型字面量!
请参阅我们的操作手册以获取有关贡献的指南。
Hyper制作了这个工具。我们是一家热衷于优质代码和愉悦用户体验的数字通信代理机构。如果您正在使用这个库,我们可能希望雇佣您(我们考虑远程员工;唯一的要求是您必须是出色的)。
演示文稿可在MIT许可证下使用。参见LICENSE。