EasyTipView 2.1.0

EasyTipView 2.1.0

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发行上次发布2021 年 1 月
SPM支持 SPM

Teodor PatrașTeodor Patras维护。



  • Teodor Patraș

EasyTipView: fully customisable tooltip view written in Swift

Swift3 Platform Build Status Version Carthage Compatible License

描述

EasyTipView 是一个完全可定制的 Swift 写的提示视图,可用作行动号召或信息提示。

内容

  1. 功能
  2. 安装
  3. 支持的 OS 和 SDK 版本
  4. 使用
  5. 自定义外观
  6. 自定义显示和隐藏动画
  7. 许可证
  8. 联系

功能

  • 可以指向任何 UIBarItemUIView 子类。
  • 支持任何箭头方向 ←, →, ↑, ↓
  • 自动调整屏幕方向变化。
  • 完全可定制的的外观(自定义内容视图或仅文本 - 包括 NSAttributedString - see the Example app)。
  • 完全可定制的显示和隐藏动画。

安装

CocoaPods

CocoaPods 是 Cocoa 项目的依赖管理器。

CocoaPods 0.36 添加了对 Swift 和嵌入式框架的支持。您可以使用以下命令安装它

$ gem install cocoapods

要将 EasyTipView 集成到您的 Xcode 项目中,使用 CocoaPods,请在您的 Podfile 中指定它

对于 Swift 4.x

pod 'EasyTipView', '~> 2.1.0'

对于 Swift 3.x

pod 'EasyTipView', '~> 2.1.0'

然后,运行以下命令

$ pod install

如果 Xcode 抱怨("无法加载 EasyTipView 的底层模块"),请转到 Product 并选择 Clean(或简单地按 K)。

Carthage

Carthage 是一个去中心化的依赖管理器,它构建您的依赖项并提供二进制框架。

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

$ brew update
$ brew install carthage

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

github "teodorpatras/EasyTipView"

运行 carthage update 来构建框架,并将构建的 EasyTipView.framework 拖动到您的 Xcode 项目中。

手动

如果您不想使用上述任何依赖管理器,可以将 EasyTipView 手动集成到项目中。

支持的操作系统 & SDK 版本

  • 支持的构建目标 - iOS 8+(Xcode 8)

用法

  1. 首先应自定义首选项
var preferences = EasyTipView.Preferences()
preferences.drawing.font = UIFont(name: "Futura-Medium", size: 13)!
preferences.drawing.foregroundColor = UIColor.whiteColor()
preferences.drawing.backgroundColor = UIColor(hue:0.46, saturation:0.99, brightness:0.6, alpha:1)
preferences.drawing.arrowPosition = EasyTipView.ArrowPosition.top

/*
 * Optionally you can make these preferences global for all future EasyTipViews
 */
EasyTipView.globalPreferences = preferences
  1. 其次调用 show(animated: forView: withinSuperview: text: preferences: delegate:) 方法
EasyTipView.show(forView: self.buttonB,
withinSuperview: self.navigationController?.view,
text: "Tip view inside the navigation controller's view. Tap to dismiss!",
preferences: preferences,
delegate: self)

注意,如果您设置了 EasyTipView.globalPreferences,则可以在所有调用中省略 preferences 参数。此外,您还可以省略 withinSuperview 参数,并且 EasyTipView 将在主应用程序窗口中显示。

或者,如果您稍后想程序性地关闭 EasyTipView,可以使用以下其中一种实例方法

let tipView = EasyTipView(text: "Some text", preferences: preferences)
tipView.show(forView: someView, withinSuperview: someSuperview)

// later on you can dismiss it
tipView.dismiss()

自定义外观

为了自定义 EasyTipView 的外观和行为,您可以修改封装 EasyTipView 所有可定制属性的 Preferences 结构。这些首选项已分为三个结构

  • 绘制 - 封装了指定 EastTipView 在屏幕上如何绘制的可定制属性。
  • 定位 - 封装了指定 EasyTipView 在其自身边界内如何绘制的可定制属性。
  • 动画 - 封装了指定 EasyTipView 如何在屏幕上开启和关闭可定制属性。
绘制 属性 描述
cornerRadius 提示视图气泡的圆角半径。
arrowHeight 位于气泡顶部或底部的箭头的高度。
arrowWidth 上述箭头的宽度。
foregroundColor 文本颜色。
backgroundColor 气泡的背景颜色。
arrowPosition 箭头的位置。可以是以下之一
+ .top: 在气泡顶部
+ .bottom: 在气泡底部
+ .left: 在气泡左侧
+ .right: 在气泡右侧
+ .any: 使用此选项让 EasyTipView 自动找到最佳箭头位置。
如果由于布局限制,无法应用传入的箭头,则会自动分配不同的箭头位置。
textAlignment 文本的对齐方式。
borderWidth 可选边框的宽度。
borderColor 可选边框的颜色。 为了应用边框,borderColor 需要与 UIColor.clear 不同,且 borderWidth > 0
font 应用于文本的字体。
shadowColor 阴影的颜色(默认 UIColor.clearcolor)。
shadowOpacity 阴影的透明度(默认 0)。 为了绘制阴影,shadowColorshadowOpacity 都必须设置有效值。
shadowRadius 阴影的半径(默认 0)。
shadowOffset 阴影的偏移量。
定位 属性 描述
bubbleHInset 在其容器内的水平气泡嵌入。
bubbleVInset 在其容器内的垂直气泡嵌入。
contentHInset 气泡内的内容水平嵌入。
contentVInset 气泡内的内容垂直嵌入。
maxWidth 最大气泡宽度。
动画 属性 描述
dismissTransform CGAffineTransform 指定气泡如何消失。
showInitialTransform CGAffineTransform 指定气泡在动画显示到屏幕上之前要应用的初始转换。
showFinalTransform CGAffineTransform 指定气泡如何在屏幕上动画播放。
springDamping 弹簧动画阻尼。
springVelocity 弹簧动画速度。
showInitialAlpha 在动画显示到屏幕上之前应用到尖端视图的初始透明度。
dismissFinalAlpha 在动画消失到屏幕上的过程中应用到尖端视图的透明度。
showDuration 显示动画持续时间。
dismissDuration 消失动画持续时间。
dismissOnTap 如果设置为 false,则防止视图在点击时消失。(默认值为 true。)

自定义显示或消失动画

默认的显示或消失动画为放大和缩小。如果您想改变默认行为,需要更改偏好设置中 animating 属性的属性。一个可能的例子是

preferences.animating.dismissTransform = CGAffineTransform(translationX: 0, y: -15)
preferences.animating.showInitialTransform = CGAffineTransform(translationX: 0, y: -15)
preferences.animating.showInitialAlpha = 0
preferences.animating.showDuration = 1.5
preferences.animating.dismissDuration = 1.5

这会产生以下动画

对于更多动画,请查阅示例项目。一旦配置了动画,一个好的 idea 是将这些偏好设置 global 化,适用于所有未来 EasyTipView 的实例,通过将其分配给 EasyTipView.globalPreferences

许可证

EasyTipViewTeodor Patraş 开发,并按照 MIT 许可证发布。请参见 LICENSE 文件以获得详细信息。

Logo 是使用来自 Budi Tanrim 的 Bud Icons Launch 图形制作的,源自 FlatIcon,该许可证属于 Creative Commons BY 3.0。使用了 Logo Maker

联系

您可以通过我的Twitter账号关注我或给我留言。如果您在项目中发现任何问题,可以提交工单。我们也欢迎Pull请求。