描述
EasyTipView
是一个完全可定制的 Swift 写的提示视图,可用作行动号召或信息提示。
![]() |
![]() |
---|
内容
功能
- 可以指向任何
UIBarItem
或UIView
子类。 - 支持任何箭头方向
←, →, ↑, ↓
- 自动调整屏幕方向变化。
- 完全可定制的的外观(自定义内容视图或仅文本 - 包括
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)
用法
- 首先应自定义首选项
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
- 其次调用
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 )。 为了绘制阴影,shadowColor 和 shadowOpacity 都必须设置有效值。 |
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
。
许可证
EasyTipView
由 Teodor Patraş 开发,并按照 MIT 许可证发布。请参见 LICENSE
文件以获得详细信息。
Logo 是使用来自 Budi Tanrim 的 Bud Icons Launch 图形制作的,源自 FlatIcon,该许可证属于 Creative Commons BY 3.0。使用了 Logo Maker。
联系
您可以通过我的Twitter账号关注我或给我留言。如果您在项目中发现任何问题,可以提交工单。我们也欢迎Pull请求。