ADVHelper
要求
iOS 12.0或更高版本
安装
ADVHelper可通过CocoaPods获取。安装它,只需将以下行添加到Podfile中:
pod 'ADVHelper'
用法
- ADVHelper
使用 ADVHelper 编程方式
在每个将要使用的 Swift 文件顶部导入 ADVHelper。
import ADVHelper
- 本地化
使用 Localize 编程方式
在您想要翻译的任何 String
对象后添加 .localized()
let _ = "String".localized()
更改当前语言
Localize.setCurrentLanguage("th")
要更新可能发生语言更改的视图控制器中的 UI,观察 LCLLanguageChangeNotification
NotificationCenter.default.addObserver(self, selector: #selector(setText), name: NSNotification.Name(LCLLanguageChangeNotification), object: nil)
示例函数 setText()
@objc func setText() {
titleLabel.localizeKey = "String".localized()
textFieldBox.localizeKey = "String".localized()
textViewBox.localizeKey = "String".localized()
buttonBtn.localizeKey = "String".localized()
}
- 字符串扩展
使用 String Extension 编程方式
- 日期格式化器 (DateFormatter)
- 函数
dateFormat
用于设置输出格式format
在此函数中,它支持输入格式 yyyy-MM-dd HH: mm: ss
和 yyyy-MM-dd
。默认输入 en
的本地日期。输出本地日期基于 Localize 语言
。
示例输入日期
let inputDateStr = "2020-06-17 10:20:30"
使用示例
titleLabel.text = inputDateStr.dateFormat(format: "dd/MM/yyyy HH:mm")
输出
17/06/2020 10:20
- 函数
dateFormat
用于设置fromFormat
和toFormat
在此函数中,默认输入日期格式为 en
。输出日期格式基于 Localize Language
。
示例输入日期
let inputDateStr = "2020-06-17 10:20:30"
使用示例
titleLabel.text = inputDateStr.dateFormat(fromFormat: "yyyy-MM-dd HH:mm:ss", toFormat: "dd/MM/yyyy HH:mm")
输出
17/06/2020 10:20
- 函数
dateFormat
用于设置fromFormat
、toFormat
和toLocaleIdentifier
在此函数中,默认输入日期格式为 en
。
示例输入日期
let inputDateStr = "2020-06-17 10:20:30"
使用示例
titleLabel.text = inputDateStr.dateFormat(fromFormat: "yyyy-MM-dd HH:mm:ss", toFormat: "dd/MM/yyyy HH:mm", toLocaleIdentifier: "th")
输出
17/06/2563 10:20
- 函数
dateFormat
用于设置所有fromFormat
、fromLocaleIdentifier
、toFormat
和toLocaleIdentifier
示例输入日期
let inputDateStr = "2563-06-17 10:20:30"
使用示例
titleLabel.text = inputDateStr.dateFormat(fromFormat: "yyyy-MM-dd HH:mm:ss", fromLocaleIdentifier: "th", toFormat: "dd/MM/yyyy HH:mm", toLocaleIdentifier: "en")
输出
17/06/2020 10:20
- 按钮
以编程方式使用按钮
将 UI 与代码连接
@IBOutlet weak var buttonBtn: Button!
- 本地化
使用 localizeKey
定义文本
buttonBtn.localizeKey = "Button".localized()
- 加载
要在按钮内显示加载器,并在加载时启用或禁用用户交互
buttonBtn.showLoader()
要隐藏加载器
buttonBtn.hideLoader()
在 Storyboard 中使用按钮
使用步骤
- 将 UIButton 拖拽到 Storyboard 上。
- 将类设置为
Button
- 设置属性检查。
- 边框
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
borderColor | UIColor | 图层边框的颜色。 | UIColor.clear |
borderWidth | CGFloat | 图层边框的宽度。 | 0 |
- 圆角半径
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
cornerRadius | CGFloat | 绘制图层背景圆角时使用的半径。 | 0 |
- 阴影
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
shadowColor | UIColor | 图层阴影的颜色。 | UIColor.clear |
shadowOpacity | Float | 图层阴影的不透明度。 | 0 |
shadowOffset | CGSize | 图层阴影的偏移(以点为单位)。 | CGSize.zero |
shadowRadius | CGFloat | 用于渲染图层阴影的模糊半径(以点为单位)。 | 0 |
- 渐变背景
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
gradientEnabled | Bool | 启用渐变背景。 | false |
gradientStartColor | UIColor | 渐变背景的起始颜色。 | UIColor.clear |
gradientEndColor | UIColor | 渐变背景的结束颜色。 | UIColor.clear |
gradientHorizontal | Bool | 是否为水平渐变背景。 | false |
- 点击动画
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
animatedScaleWhenHighlighted | CGFloat | 点击高亮时的动画缩放。 | 1.0 |
animatedScaleDurationWhenHighlighted | Double | 点击高亮时的动画缩放持续时间。 | 0.2 |
- 波纹动画
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
ripple | Bool | 启用波纹动画。 | false |
rippleColor | UIColor | 波纹动画的颜色。 | UIColor(white: 1.0, alpha: 0.3) |
rippleSpeed | Double | 波纹动画的速度。 | 1.0 |
图片链接
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
imageViewContentMode | 整数 | 指定视图在大小变化时如何调整其内容的选项。* ContentMode | 0 |
imageAlpha | CGFloat | 视图的alpha值。 | 1.0 |
图片下划线
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
isUnderline | Bool | 启用下划线。 | false |
标签
使用标签编程方式
将 UI 与代码连接
@IBOutlet weak var titleLabel: Label!
本地化
使用 localizeKey
定义文本
titleLabel.localizeKey = "Label".localized()
在Storyboard中使用标签
使用步骤
- 将UILabel拖入Storyboard。
- 将类设置为
Label
- 设置属性检查。
边框
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
borderColor | UIColor | 图层边框的颜色。 | UIColor.clear |
borderWidth | CGFloat | 图层边框的宽度。 | 0 |
- 圆角
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
cornerRadius | CGFloat | 绘制图层背景圆角时使用的半径。 | 0 |
- 阴影
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
shadowColor | UIColor | 图层阴影的颜色。 | UIColor.clear |
shadowOpacity | Float | 图层阴影的不透明度。 | 0 |
shadowOffset | CGSize | 图层阴影的偏移(以点为单位)。 | CGSize.zero |
shadowRadius | CGFloat | 用于渲染图层阴影的模糊半径(以点为单位)。 | 0 |
- 下划线
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
isUnderline | Bool | 启用下划线。 | false |
- 文本框
使用文本框程序化
将 UI 与代码连接
@IBOutlet weak var textFieldBox: TextField!
- 本地化
使用 localizeKey
定义占位符
textFieldBox.localizeKey = "Placeholder".localized()
在Storyboard中使用文本框
使用步骤
- 将UITextField拖入Storyboard。
- 将类设置为
TextField
- 设置属性检查。
- 边框
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
borderColor | UIColor | 图层边框的颜色。 | UIColor.clear |
borderWidth | CGFloat | 图层边框的宽度。 | 0 |
- 圆角半径
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
cornerRadius | CGFloat | 绘制图层背景圆角时使用的半径。 | 0 |
- 阴影
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
shadowColor | UIColor | 图层阴影的颜色。 | UIColor.clear |
shadowOpacity | Float | 图层阴影的不透明度。 | 0 |
shadowOffset | CGSize | 图层阴影的偏移(以点为单位)。 | CGSize.zero |
shadowRadius | CGFloat | 用于渲染图层阴影的模糊半径(以点为单位)。 | 0 |
- 渐变背景
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
gradientEnabled | Bool | 启用渐变背景。 | false |
gradientStartColor | UIColor | 渐变背景的起始颜色。 | UIColor.clear |
gradientEndColor | UIColor | 渐变背景的结束颜色。 | UIColor.clear |
gradientHorizontal | Bool | 是否为水平渐变背景。 | false |
- 填充
左:0,右:0 | 左:8,右:0 | 左:0,右:8 | 左:8,右:8 |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
paddingLeftCustom | CGFloat | 通过指定的量沿左边缘填充视图。 | 8 |
paddingRightCustom | CGFloat | 通过指定的量沿右边缘填充视图。 | 8 |
- TextView
使用 TextView 编程方式
将 UI 与代码连接
@IBOutlet weak var textViewBox: TextView!
本地化
使用 localizeKey
定义占位符
textViewBox.localizeKey = "Placeholder".localized()
在 Storyboard 中使用 TextView
使用步骤
- 将 UITextView 拖入 Storyboard。
- 设置类为
TextView
- 设置属性检查。
边框
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
borderColor | UIColor | 图层边框的颜色。 | UIColor.clear |
borderWidth | CGFloat | 图层边框的宽度。 | 0 |
圆角半径
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
cornerRadius | CGFloat | 绘制图层背景圆角时使用的半径。 | 0 |
最大长度
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
maxLength | 整数 | 最大字符长度。 (0 表示无限制) | 0 |
删除空格
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
trimWhiteSpaceWhenEndEditing | Bool | 结束编辑时删除空白和换行字符。 | true |
- 高度
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
minHeight | CGFloat | 最小高度限制。(0代表无限制) | 0 |
maxHeight | CGFloat | 最大高度限制。(0代表无限制) | 0 |
- 内边距
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
paddingLeftCustom | CGFloat | 通过指定的量沿左边缘填充视图。 | 8 |
paddingRightCustom | CGFloat | 通过指定的量沿右边缘填充视图。 | 8 |
paddingTopCustom | CGFloat | 通过指定值填充视图顶部边缘。 | 8 |
paddingBottomCustom | CGFloat | 通过指定值填充视图底部边缘。 | 8 |
- ImageView
以编程方式使用 ImageView
将 UI 与代码连接
@IBOutlet weak var imageView: ImageView!
在 Storyboard 中使用 ImageView
使用步骤
- 将 UIImageView 拖动到 Storyboard 上。
- 将类设置为
ImageView
- 设置属性检查。
- 边框
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
borderColor | UIColor | 图层边框的颜色。 | UIColor.clear |
borderWidth | CGFloat | 图层边框的宽度。 | 0 |
- 圆角半径
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
cornerRadius | CGFloat | 绘制图层背景圆角时使用的半径。 | 0 |
查看
使用View进行编程
将 UI 与代码连接
@IBOutlet weak var view: View!
在Storyboard中使用View
使用步骤
- 将UIView拖拽到Storyboard。
- 将类设置为
View
- 设置属性检查。
边框
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
borderColor | UIColor | 图层边框的颜色。 | UIColor.clear |
borderWidth | CGFloat | 图层边框的宽度。 | 0 |
圆角半径
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
cornerRadius | CGFloat | 绘制图层背景圆角时使用的半径。 | 0 |
阴影
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
shadowColor | UIColor | 图层阴影的颜色。 | UIColor.clear |
shadowOpacity | Float | 图层阴影的不透明度。 | 0 |
shadowOffset | CGSize | 图层阴影的偏移(以点为单位)。 | CGSize.zero |
shadowRadius | CGFloat | 用于渲染图层阴影的模糊半径(以点为单位)。 | 0 |
渐变背景
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
gradientEnabled | Bool | 启用渐变背景。 | false |
gradientStartColor | UIColor | 渐变背景的起始颜色。 | UIColor.clear |
gradientEndColor | UIColor | 渐变背景的结束颜色。 | UIColor.clear |
gradientHorizontal | Bool | 是否为水平渐变背景。 | false |
- 表格视图
使用表格视图编程
将 UI 与代码连接
@IBOutlet weak var dataTableView: TableView!
- 图像大小
自定义尺寸图像
dataTableView.imageSizePercentage = .percentage75
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
imageSizePercentage | 百分比 | 图像大小,以表格视图大小的百分比表示。 | percentage75 |
- 颜色 & 字体
自定义颜色 & 字体
dataTableView.titleColor = UIColor.black
dataTableView.titleFont = UIFont(name: "HelveticaNeue-Bold", size: 18)
dataTableView.messageColor = UIColor.lightGray
dataTableView.messageFont = UIFont(name: "HelveticaNeue-Regular", size: 17)
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
titleColor | UIColor | 标题的颜色。 | UIColor.black |
titleFont | UIFont | 标题的字体。 | UIFont(name: "HelveticaNeue-Bold", size: 18) |
messageColor | UIColor | 消息颜色。 | UIColor.lightGray |
messageFont | UIFont | 消息的字体。 | UIFont(name: "HelveticaNeue-Regular", size: 17) |
- 空视图
在numberOfRowsInSection
中使用示例
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if names.count == 0 {
dataTableView.setEmptyView(title: "Oops!", message: "Data not found.", messageImage: #imageLiteral(resourceName: "data_not_found_icon"), animated: true)
} else {
dataTableView.restore()
}
return names.count
}
setEmptyView
函数,用于仅显示图像。
使用示例
dataTableView.setEmptyView(messageImage: #imageLiteral(resourceName: "no_data_icon"), animated: true)
输出
setEmptyView
函数,用于仅显示标题。
使用示例
dataTableView.setEmptyView(title: "Data not found.")
输出
setEmptyView
函数,用于显示标题和消息。
使用示例
dataTableView.setEmptyView(title: "Oops!", message: "Data not found.")
输出
setEmptyView
函数,用于显示图像、标题和消息。
使用示例
dataTableView.setEmptyView(title: "Oops!", message: "Data not found.", messageImage: #imageLiteral(resourceName: "data_not_found_icon"), animated: true)
输出
- 恢复
恢复TableView
使用示例
dataTableView.restore()
在Storyboard中使用TableView
使用步骤
- 将UITableView拖拽到Storyboard中。
- 将类设置为
TableView
- 设置属性检查。
- 边框
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
borderColor | UIColor | 图层边框的颜色。 | UIColor.clear |
borderWidth | CGFloat | 图层边框的宽度。 | 0 |
- CollectionView
使用CollectionView编程方式
将 UI 与代码连接
@IBOutlet weak var dataCollectionView: CollectionView!
- 图片大小
自定义尺寸图像
dataCollectionView.imageSizePercentage = .percentage75
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
imageSizePercentage | 百分比 | 图片大小,以CollectionView大小的百分比表示。 | percentage75 |
- 颜色 & 字体
自定义颜色 & 字体
dataCollectionView.titleColor = UIColor.black
dataCollectionView.titleFont = UIFont(name: "HelveticaNeue-Bold", size: 18)
dataCollectionView.messageColor = UIColor.lightGray
dataCollectionView.messageFont = UIFont(name: "HelveticaNeue-Regular", size: 17)
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
titleColor | UIColor | 标题的颜色。 | UIColor.black |
titleFont | UIFont | 标题的字体。 | UIFont(name: "HelveticaNeue-Bold", size: 18) |
messageColor | UIColor | 消息颜色。 | UIColor.lightGray |
messageFont | UIFont | 消息的字体。 | UIFont(name: "HelveticaNeue-Regular", size: 17) |
- 空视图
在 numberOfItemsInSection
中的使用示例
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
if names.count == 0 {
dataCollectionView.setEmptyView(title: "Oops!", message: "Data not found.", messageImage: #imageLiteral(resourceName: "data_not_found_icon"), animated: true)
} else {
dataCollectionView.restore()
}
return names.count
}
setEmptyView
函数,用于仅显示图像。
使用示例
dataCollectionView.setEmptyView(messageImage: #imageLiteral(resourceName: "no_data_icon"), animated: true)
输出
setEmptyView
函数,用于仅显示标题。
使用示例
dataCollectionView.setEmptyView(title: "Data not found.")
输出
setEmptyView
函数,用于显示标题和消息。
使用示例
dataCollectionView.setEmptyView(title: "Oops!", message: "Data not found.")
输出
setEmptyView
函数,用于显示图像、标题和消息。
使用示例
dataCollectionView.setEmptyView(title: "Oops!", message: "Data not found.", messageImage: #imageLiteral(resourceName: "data_not_found_icon"), animated: true)
输出
- 恢复
恢复 CollectionView
使用示例
dataCollectionView.restore()
在 Storyboard 中使用 CollectionView
使用步骤
- 将 UICollectionView 拖拽到 Storyboard。
- 将类设置为
CollectionView
- 设置属性检查。
- 边界
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
borderColor | UIColor | 图层边框的颜色。 | UIColor.clear |
borderWidth | CGFloat | 图层边框的宽度。 | 0 |
示例
要运行示例项目,请先克隆存储库,然后从 Example 目录中运行 pod install
。
作者
nattaponph, [email protected]
许可证
ADVHelper 在MIT许可证下可用。有关更多信息,请参阅LICENSE文件。