DynamicButton

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

DynamicButton 是一个强大的扁平化设计按钮,使用 Swift 编写,用于显示类似汉堡按钮的样式,并在样式更新之间进行动画过渡。它还允许您创建自己的自定义符号/样式按钮!

DynamicButton

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

要求

用法

基础

这是如何创建一个按钮并设置其样式

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)

自定义符号

要创建您自己的符号,您必须创建一个符合 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 文件(而不是通常的项目文件)在 Xcode 中打开您的项目

$ open MyProject.xcworkspace

现在您可以将 import DynamicButton 框架导入到您的文件中。

Carthage

Carthage 是一个去中心化的依赖管理器,可自动执行将框架添加到您的 Cocoa 应用程序的过程。

您可以使用 Homebrew 通过以下命令安装 Carthage

$ brew update
$ brew install carthage

要使用 Carthage 将 DynamicButton 集成到您的 Xcode 项目中,请在您的 Cartfile 文件中指定它

github "yannickl/DynamicButton" >= 6.2.1

Swift Package Manager

您可以使用 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

许可证 (MIT)

版权所有 (c) 2015-至今 - Yannick Loriot

特此授予许可,免费授予获得本软件及相关文档文件(“软件”)副本的任何人,在不受限制的情况下处理本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售本软件副本的权利,并允许向其提供本软件的人员在符合以下条件的情况下这样做

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

本软件按“原样”提供,不提供任何形式的明示或暗示的保证,包括但不限于适销性、特定用途的适用性和非侵权性的保证。在任何情况下,作者或版权持有者均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权行为或其他方面,因本软件或本软件的使用或其他交易而产生、源于本软件或与之相关。