Reactions 是一个完全可定制的控件,旨在让人们能够以快速简便的方式分享他们的反应。
要求 • 用法 • 安装 • 贡献 • 联系方式 • 许可证
Reaction
对象是一个使用以下属性定义的模型
该库已经打包了标准的 Facebook 反应:like
(赞)、love
(喜欢)、haha
(哈哈)、wow
(哇)、sad
(伤心)和 angry
(生气)。当然,您也可以创建自己的反应。
let myReaction = Reaction(id: "id", title: "title", color: .red, icon: UIImage(named: "name")!)
ReactionSelector
控件允许人们从列表中选择一个反应
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
}
该组件可以单独使用(如上所示),也可以与 ReactionButton
(稍后讨论)结合使用。您当然可以使用 ReactionSelectorConfig
对象自定义该组件
select.config = ReactionSelectorConfig {
$0.spacing = 6
$0.iconSize = 40
$0.stickyReaction = false
}
ReactionButton
提供了一种切换反应的简单方法(例如,赞/取消赞)。也可以附加 ReactionSelector
,以便在长按时显示它
let button = ReactionButton()
button.reaction = Reaction.facebook.like
// To attach a selector
button.reactionSelector = ReactionSelector()
您可以使用 ReactionButtonConfig
对象配置该组件
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
}
ReactionSummary
是一个控件,它将给定的反应列表显示为一组叠加的唯一图标。您也可以将其链接到文本描述。
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
}
与其他组件一样,您可以使用 ReactionSummaryConfig
对象进行设置
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 尚未安装,请先安装它
$ [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 文件(而不是通常的项目文件)在 Xcode 中打开您的项目
$ open MyProject.xcworkspace
现在您可以将 import Reactions
框架导入到您的文件中了。
Carthage 是一个去中心化的依赖管理器,它可以自动执行将框架添加到您的 Cocoa 应用程序的过程。
您可以使用 Homebrew 使用以下命令安装 Carthage
$ brew update
$ brew install carthage
要使用 Carthage 将 Reactions
集成到您的 Xcode 项目中,请在您的 Cartfile
文件中指定它
github "yannickl/Reactions" >= 3.0.0
您可以使用 Swift Package Manager 来安装 Reactions
,方法是将正确的描述添加到您的 Package.swift
文件中
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 Package Manager 仍处于早期设计和开发阶段,有关更多信息,请查看其 GitHub 页面。
下载 该项目并将 Sources
和 Resources
文件夹复制到您的项目中以使用它。
欢迎并鼓励贡献 ♡。
Yannick Loriot
版权所有 (c) 2016-至今 - Yannick Loriot
特此授予许可,对获得本软件和相关文档文件(“软件”)副本的任何人免费,以不受限制地处理本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向为此目的提供软件的人员提供软件,但须符合以下条件
上述版权声明和本许可声明应包含在本软件的所有副本或主要部分中。
本软件按“现状”提供,不提供任何形式的明示或暗示的保证,包括但不限于适销性、特定用途的适用性和不侵权的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权诉讼或其他诉讼中,因本软件或本软件的使用或其他交易而引起、产生或与之相关的责任。