反馈 3.0.0

反馈 3.0.0

测试已测试
语言语言 SwiftSwift
许可 MIT
发布上次发布2018年9月
SPM支持SPM

Yannick Loriot 维护。



反馈 3.0.0

Reactions

Supported Platforms Version Swift Package Manager Carthage compatible Build status Code coverage status Codebeat badge

反馈 是一个完全可定制的控件,让人们以快速和简单的方式分享他们的反馈。

Reactions

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

要求

  • iOS 8.0+
  • Xcode 9.0+
  • Swift 4.2+

用法

反应

Reaction

Reaction 对象是一个定义了以下属性的模型

  • id: 一个唯一标识符。
  • 名称: 显示在选择器或按钮上的标题。
  • 颜色: 用来显示按钮标题的颜色。
  • 图标: 反应图标。
  • 备用图标: 可选的与反应按钮配合使用的备用图标。

该库已经包含了标准的 Facebook 反应:喜欢哈哈哈难过生气。当然,您也可以创建自己的

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
}

该组件可以单独使用(如同上所示)或与《反应按钮》(稍后讨论)一起使用。当然,您可以使用《反应选择器配置》对象来自定义该组件

select.config = ReactionSelectorConfig {
  $0.spacing        = 6
  $0.iconSize       = 40
  $0.stickyReaction = false
}

反应按钮

ReactionButton

《反应按钮》提供了一个简单的切换反应的方式(例如,点赞/不喜欢)。还可以将《反应选择器》附加到它上,以便在长按时显示它

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
}

反应摘要

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)

ReactionSummary Non Aggregated

您还可以获取每个反应的详细信息。为此,您需要取消合并它们,将配置属性 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 页面

手动

下载项目并将 SourcesResources 文件夹复制到您的项目中使用 Download

贡献

欢迎和鼓励贡献

联系

Yannick Loriot

许可证 (MIT)

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

特此授予任何获取本软件及其相关文档文件(以下简称“软件”)副本的人员免费使用权,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许获得软件的人员这样做,但须遵守以下条件

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

软件按“现状”提供,不提供任何形式的担保,无论是明示的、暗示的还是其他的,包括但不限于针对适销性、针对特定用途的适用性和非侵犯性的担保。在任何情况下,作者或版权所有者均不对任何主张、损害或其它责任承担责任,无论这种责任是基于合同、侵权或其他,起源于、源于或在软件的使用或其它方式中使用软件。