DynamicButton 是一个强大的扁平化设计按钮,使用 Swift 编写,用于显示类似汉堡按钮的样式,并在样式更新之间进行动画过渡。它还允许您创建自己的自定义符号/样式按钮!
要求 • 用法 • 安装 • 贡献 • 联系方式 • 许可证
这是如何创建一个按钮并设置其样式
import DynamicButton
let dynamicButton = DynamicButton(style: .hamburger)
// Equivalent to
// let dynamicButton = DynamicButton()
// dynamicButton.style = .hamburger
// Animate the style update
dynamicButton.setStyle(.close, animated: true)
按钮的外观和行为可以使用不同的属性进行自定义
let dynamicButton = DynamicButton()
dynamicButton.lineWidth = 3
dynamicButton.strokeColor = .black
dynamicButton.highlightStokeColor = .gray
这是库中已实现的符号列表 (DynamicButton.Style
)
.arrowDown
: 向下箭头 ↓
.arrowLeft
: 向左箭头 ←
.arrowRight
: 向右箭头 →
.arrowUp
: 向上箭头 ↑
.caretDown
: 向下插入符号 ⌄
.caretLeft
: 向左插入符号 ‹
.caretRight
: 向右插入符号 ›
.caretUp
: 向上插入符号: ⌃
.checkMark
: 对勾 ✓
.circleClose
: 圆圈包围的关闭符号.circlePlus
: 圆圈包围的加号符号.close
: 关闭符号 X
.dot
: 点符号 .
.download
: 指向横线的向下三角形箭头 ⤓
.fastForward
: 快进 ≫
.hamburger
: 汉堡按钮 ≡
.horizontalLine
: 水平线 ―
.horizontalMoreOptions
: 水平更多选项 …
.none
: 无样式.pause
: 暂停符号 ‖
.play
: 播放符号 ►
.plus
: 加号符号 +
.stop
: 停止符号 ◼
.reload
: 重新加载符号 ↻
.rewind
: 后退 ≪
.verticalLine
: 垂直线 |
.verticalMoreOptions
: 垂直更多选项 ⋮
.location
: 定位符号要创建您自己的符号,您必须创建一个符合 DynamicButtonBuildableStyle
协议的对象(或结构体)
/// Diagonal line style: \
struct MyCustomLine: DynamicButtonBuildableStyle {
let pathVector: DynamicButtonPathVector
init(center: CGPoint, size: CGFloat, offset: CGPoint, lineWidth: CGFloat) {
let r = size / 2
let c = cos(CGFloat.pi * 0.3)
let s = sin(CGFloat.pi * 0.3)
let p1 = CGMutablePath()
p1.move(to: CGPoint(x: center.x + r * c, y: center.y + r * s))
p1.addLine(to: CGPoint(x: center.x - r * c, y: center.y - r * s))
pathVector = DynamicButtonPathVector(p1: p1, p2: p1, p3: p1, p4: p1)
}
/// "MyCustomLine" style.
static var styleName: String {
return "MyCustomLine"
}
}
myButton.style = .custom(MyCustomLine.self)
请注意,一个符号不能超过 4 条路径。
要了解更多信息,请查看示例项目。
如果 CocoaPods 尚不可用,请安装它
$ [sudo] gem install cocoapods
$ pod setup
转到您的 Xcode 项目目录,创建并编辑您的 Podfile 并添加 DynamicButton
$ cd /path/to/MyProject
$ touch Podfile
$ edit Podfile
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
pod 'DynamicButton', '~> 6.2.1'
安装到您的项目中
$ pod install
从 .xcworkspace 文件(而不是通常的项目文件)在 Xcode 中打开您的项目
$ open MyProject.xcworkspace
现在您可以将 import DynamicButton
框架导入到您的文件中。
Carthage 是一个去中心化的依赖管理器,可自动执行将框架添加到您的 Cocoa 应用程序的过程。
您可以使用 Homebrew 通过以下命令安装 Carthage
$ brew update
$ brew install carthage
要使用 Carthage 将 DynamicButton
集成到您的 Xcode 项目中,请在您的 Cartfile
文件中指定它
github "yannickl/DynamicButton" >= 6.2.1
您可以使用 Swift Package Manager 通过将正确的描述添加到您的 Package.swift
文件来安装 DynamicButton
import PackageDescription
let package = Package(
name: "YOUR_PROJECT_NAME",
dependencies: [
.package(url: "https://github.com/yannickl/DynamicButton.git", from: "6.2.1")
],
// ...
)
请注意,Swift Package Manager 仍处于早期设计和开发阶段,有关更多信息,请查看其 GitHub 页面。
下载 项目并将 DynamicButton
文件夹复制到您的项目中以使用它。
欢迎并鼓励贡献 ♡。
Yannick Loriot
版权所有 (c) 2015-至今 - Yannick Loriot
特此授予许可,免费授予获得本软件及相关文档文件(“软件”)副本的任何人,在不受限制的情况下处理本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售本软件副本的权利,并允许向其提供本软件的人员在符合以下条件的情况下这样做
上述版权声明和本许可声明应包含在本软件的所有副本或主要部分中。
本软件按“原样”提供,不提供任何形式的明示或暗示的保证,包括但不限于适销性、特定用途的适用性和非侵权性的保证。在任何情况下,作者或版权持有者均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权行为或其他方面,因本软件或本软件的使用或其他交易而产生、源于本软件或与之相关。