SwiftyButton 0.8.2

SwiftyButton 0.8.2

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

TakeScoop OpsPaul MacRoryIan Keith 维护。



  • 作者
  • Scoop

SwiftyButton

简单的可定制按钮。

Carthage compatible

安装

Cocoapods

pod 'SwiftyButton'

Carthage

github 'TakeScoop/SwiftyButton'

使用

扁平按钮

let button = FlatButton()
button.color = .cyan
button.highlightedColor = .blue
button.cornerRadius  = 5

可点击按钮

let button = PressableButton()
button.colors = .init(button: .cyan, shadow: .blue)
button.shadowHeight = 5
button.cornerRadius = 5

所有属性

以下是可以修改的所有属性列表。这些属性都可以直接从界面构造器中编辑。查看 FlatButton.DefaultsPressableButton.Defaults 来设置这些属性的默认值。

FlatButton

button.color = .cyan
button.highlightedColor = .cyan
button.selectedColor = .blue
button.disabledButtonColor = .gray
button.cornerRadius = 8

PressableButton

button.colors = .init(button: .cyan, shadow: .blue)
button.disabledColors = .init(button: .gray, shadow: .darkGray)
button.shadowHeight = 10
button.cornerRadius = 8
button.depth = 0.5 // In percentage of shadowHeight

界面构造器(Storyboard/XIB)

按照常规添加一个 UIButton,然后

  • 将底层类修改为 FlatButton/PressableButton,并确保模块设置为 SwiftyButton
  • 确保按钮类型设置为 Custom

默认值

通过修改 FlatButton.DefaultsPressableButton.Defaults 结构,您可以设置将应用于 SwiftyButton 任何新实例的默认值

FlatButton.Defaults.color = .cyan
PressableButton.Defaults.cornerRadius = 8
...

自定义内容

使用 CustomPressableButton 在 Swifty Button 中添加自定义内容。

这是 SwiftyButton 的一个子类,它公开了一个内容视图,这个视图会随着按钮状态的改变而移动。你所要做的就是将你的视图添加到 button.contentView 中,并针对这个视图设置布局约束。

安装

pod `SwiftyButton/CustomContent`

使用方法

以下是如何创建一个类似上面的按钮(这里我们使用了 PureLayout 进行约束):

let button = CustomPressableButton()

let indicator = UIActivityIndicatorView(activityIndicatorStyle: .white)
button.contentView.addSubview(indicator)
indicator.autoPinEdgesToSuperviewEdges(with: UIEdgeInsets(top: 10, left: 15, bottom: 10, right: 0), excludingEdge: .right)
indicator.startAnimating()

let label = UILabel()
button.contentView.addSubview(label)
label.autoPinEdgesToSuperviewEdges(with: UIEdgeInsets(top: 10, left: 0, bottom: 10, right: 10), excludingEdge: .left)
label.autoPinEdge(.left, to: .right, of: indicator, withOffset: 10)
label.text = "Loading..."
label.textColor = .white

已知限制

  • PressableButton 只能与纯色(无 alpha / 不透明度)一起使用,因为它渲染背景图片的方式。请参阅 #2
  • PressableButton 自动管理标题和图片的内边距(titleEdgeInsetsimageEdgeInsets)。请参阅 #5
    • 用户指定的 topbottom 内边距值将被覆盖。
    • 您可以指定 leftright 的内边距值。

更多示例

查看 示例 文件夹以查看更多按钮示例。

贡献

发布新版本

以下是版本升级的示例: 升级到 0.8.0

NEW_VERSION 替换为您即将发布的版本号。

  • 切换到 master 分支并确保其是最新的。
  • 打开 SwiftyButton.xcworkspace 并编辑 SwiftyButton 目标的设置。将目标版本更改为 NEW_VERSION
  • 打开 CHANGELOG.md 并添加新的部分 [NEW_VERSION]。在文档底部,复制版本锚点并链接到新的版本标签(稍后创建)。在顶部插入一个新的空 [master] 部分。
  • 打开 SwiftyButton.podspec 并将 s.version 编辑为 NEW_VERSION
  • 将更改提交为 Bump to NEW_VERSION
  • 创建一个新的 Git 标签,名为 NEW_VERSION,并将您的提交加标签推送到 Github。
  • 使用 $ pod trunk push ./ 推送新的 Pod 版本。

许可证

本项目受 MIT 许可证保护。完整的许可证可以在以下地址找到: https://github.com/TakeScoop/SwiftyButton/blob/master/LICENSE

致谢