动态按钮 是一个用 Swift 编写的强大平面设计按钮,可以像汉堡按钮一样显示,并具有动画过渡。它还允许您创建自己的自定义符号/风格按钮!
要求
- iOS 8.0+ / tvOS 9.0+
- Xcode 10.0+
- Swift 5+
用法
基础
以下是如何创建按钮并设置其样式的步骤
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
若尚未安装,请安装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文件打开你的项目(而不是常规的项目文件)
$ open MyProject.xcworkspace
你现在可以在文件中导入DynamicButton
框架。
Carthage
Carthage是一款去中心化的依赖管理器,可自动将框架添加到你的Cocoa应用程序中。
使用以下命令使用Homebrew安装Carthage
$ brew update
$ brew install carthage
要使用Carthage将DynamicButton
集成到你的Xcode项目中,请在Cartfile
文件中指定它
github "yannickl/DynamicButton" >= 6.2.1
Swift包管理器
你可以使用Swift包管理器通过在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包管理器目前仍处于早期设计和开发阶段,更多详细信息请访问其GitHub页面。
手动安装
下载该项目,并将DynamicButton
文件夹复制到你的项目中以使用它。
贡献
欢迎并鼓励贡献 ♡。
联系
Yannick Loriot
许可(MIT)
版权所有(c)2015-至今 - Yannick Loriot
在此特此授予任何获得本软件及其相关文档副本(“软件”)的人免费处理该软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许将软件提供给他人,以便他们如此行事,但以下条件适用
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于对适销性、针对特定目的的适用性和非侵权性的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些索赔、损害或其他责任是基于合同、侵权或其他原因,并由此产生、因之而起或与之相关,涉及或与软件有关或任何人对软件的使用,或其使用权或其他使用。