反馈 是一个完全可定制的控件,让人们以快速和简单的方式分享他们的反馈。
要求
- iOS 8.0+
- Xcode 9.0+
- Swift 4.2+
用法
反应
Reaction
对象是一个定义了以下属性的模型
- id: 一个唯一标识符。
- 名称: 显示在选择器或按钮上的标题。
- 颜色: 用来显示按钮标题的颜色。
- 图标: 反应图标。
- 备用图标: 可选的与反应按钮配合使用的备用图标。
该库已经包含了标准的 Facebook 反应:赞
、喜欢
、哈哈哈
、哇
、难过
和 生气
。当然,您也可以创建自己的
let myReaction = Reaction(id: "id", title: "title", color: .red, icon: UIImage(named: "name")!)
反应选择器
《反应选择器》控件允许用户从列表中选择一个反应
let select = ReactionSelector()
select.reactions = Reaction.facebook.all
// React to reaction change
select.addTarget(self, action: #selector(reactionDidChanged), for: .valueChanged)
func reactionDidChanged(_ sender: AnyObject) {
print(select.selectedReaction)
}
// Conforming to the ReactionFeedbackDelegate
select.feedbackDelegate = self
func reactionFeedbackDidChanged(_ feedback: ReactionFeedback?) {
// .slideFingerAcross, .releaseToCancel, .tapToSelectAReaction
}
该组件可以单独使用(如同上所示)或与《反应按钮》(稍后讨论)一起使用。当然,您可以使用《反应选择器配置》对象来自定义该组件
select.config = ReactionSelectorConfig {
$0.spacing = 6
$0.iconSize = 40
$0.stickyReaction = false
}
反应按钮
《反应按钮》提供了一个简单的切换反应的方式(例如,点赞/不喜欢)。还可以将《反应选择器》附加到它上,以便在长按时显示它
let button = ReactionButton()
button.reaction = Reaction.facebook.like
// To attach a selector
button.reactionSelector = ReactionSelector()
您可以使用《反应按钮配置》对象来配置该组件
button.config = ReactionButtonConfig() {
$0.iconMarging = 8
$0.spacing = 4
$0.font = UIFont(name: "HelveticaNeue", size: 14)
$0.neutralTintColor = UIColor(red: 0.47, green: 0.47, blue: 0.47, alpha: 1)
$0.alignment = .left
}
反应摘要
《反应摘要》是一种控件,它将给定的反应列表显示为叠加的独特图标集合。您还可以将其与文本描述关联
let summary = ReactionSummary()
summary.reactions = Reaction.facebook.all
summary.text = "You, Chris Lattner, and 16 others"
// As is a control you can also react to the .touchUpInside event
select.addTarget(self, action: #selector(summaryDidTouched), for: .touchUpInside)
您还可以获取每个反应的详细信息。为此,您需要取消合并它们,将配置属性 isAggregated
设置为 false
。
summary.config = ReactionSummaryConfig {
$0.isAggregated = false
}
同其他组件一样,您可以使用《反应摘要配置》对象来设置它
summary.config = ReactionSummaryConfig {
$0.spacing = 8
$0.iconMarging = 2
$0.font = UIFont(name: "HelveticaNeue", size: 12)
$0.textColor = UIColor(red: 0.47, green: 0.47, blue: 0.47, alpha: 1)
$0.alignment = .left
$0.isAggregated = true
}
安装
CocoaPods
如果您还没有安装CocoaPods,请先安装
$ [sudo] gem install cocoapods
$ pod setup
进入Xcode项目的目录,创建和编辑您的 Podfile,并添加 Reactions
$ cd /path/to/MyProject
$ touch Podfile
$ edit Podfile
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
pod 'Reactions', '~> 3.0.0'
将安装到您的项目中
$ pod install
使用.xcworkspace文件打开您的项目(而不是常规的项目文件)
$ open MyProject.xcworkspace
现在,您可以将《Reactions》框架导入到您的文件中。
Carthage
Carthage 是一个去中心化的依赖管理器,可以自动化将框架添加到您的 Cocoa 应用程序的过程。
您可以使用以下命令通过 Homebrew 安装 Carthage
$ brew update
$ brew install carthage
要使用 Carthage 将 Reactions
整合到您的 Xcode 项目中,请在您的 Cartfile
文件中指定它
github "yannickl/Reactions" >= 3.0.0
Swift 包管理器
您可以使用 Swift 包管理器 通过在您的 Package.swift
文件中添加适当的描述来安装 Reactions
。
import PackageDescription
let package = Package(
name: "YOUR_PROJECT_NAME",
targets: [],
dependencies: [
.Package(url: "https://github.com/yannickl/Reactions.git", versions: "3.0.0" ..< Version.max)
]
)
请注意,Swift 包管理器 仍然处于设计和开发的早期阶段,更多信息请查看它的 GitHub 页面。
手动
下载项目并将 Sources
和 Resources
文件夹复制到您的项目中使用 Download。
贡献
欢迎和鼓励贡献 ♡。
联系
Yannick Loriot
许可证 (MIT)
版权所有 (c) 2016-至今 - Yannick Loriot
特此授予任何获取本软件及其相关文档文件(以下简称“软件”)副本的人员免费使用权,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许获得软件的人员这样做,但须遵守以下条件
以上版权声明和本许可声明应包含在所有软件的副本或主要部分的副本中。
软件按“现状”提供,不提供任何形式的担保,无论是明示的、暗示的还是其他的,包括但不限于针对适销性、针对特定用途的适用性和非侵犯性的担保。在任何情况下,作者或版权所有者均不对任何主张、损害或其它责任承担责任,无论这种责任是基于合同、侵权或其他,起源于、源于或在软件的使用或其它方式中使用软件。