动态按钮 6.2.1

动态按钮 6.2.1

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最新发布2019年9月
SPM支持SPM

Yannick Loriot 维护。




DynamicButton

Supported Platforms Version Carthage compatible Swift Package Manager compatible Build Status codecov.io codebeat badge

动态按钮 是一个用 Swift 编写的强大平面设计按钮,可以像汉堡按钮一样显示,并具有动画过渡。它还允许您创建自己的自定义符号/风格按钮!

DynamicButton

要求用法安装贡献联系许可证

要求

  • 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

在此特此授予任何获得本软件及其相关文档副本(“软件”)的人免费处理该软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许将软件提供给他人,以便他们如此行事,但以下条件适用

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于对适销性、针对特定目的的适用性和非侵权性的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些索赔、损害或其他责任是基于合同、侵权或其他原因,并由此产生、因之而起或与之相关,涉及或与软件有关或任何人对软件的使用,或其使用权或其他使用。