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文件。




















































