ADVHelper 0.1.2

ADVHelper 0.1.2

nattaponph维护。



ADVHelper 0.1.2

  • nattaponph

ADVHelper

Version License Platform Language

要求

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: ssyyyy-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 用于设置 fromFormattoFormat

在此函数中,默认输入日期格式为 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 用于设置 fromFormattoFormattoLocaleIdentifier

在此函数中,默认输入日期格式为 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 用于设置所有 fromFormatfromLocaleIdentifiertoFormattoLocaleIdentifier

示例输入日期

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()
- 加载

Loading_Btn

要在按钮内显示加载器,并在加载时启用或禁用用户交互

buttonBtn.showLoader()

要隐藏加载器

buttonBtn.hideLoader()

在 Storyboard 中使用按钮

使用步骤

  1. 将 UIButton 拖拽到 Storyboard 上。
  2. 将类设置为 Button
  3. 设置属性检查。
- 边框

参数 类型 描述 默认值
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中使用标签

使用步骤

  1. 将UILabel拖入Storyboard。
  2. 将类设置为Label
  3. 设置属性检查。
边框

参数 类型 描述 默认值
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中使用文本框

使用步骤

  1. 将UITextField拖入Storyboard。
  2. 将类设置为 TextField
  3. 设置属性检查。
- 边框

参数 类型 描述 默认值
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

使用步骤

  1. 将 UITextView 拖入 Storyboard。
  2. 设置类为 TextView
  3. 设置属性检查。
边框

参数 类型 描述 默认值
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

使用步骤

  1. 将 UIImageView 拖动到 Storyboard 上。
  2. 将类设置为 ImageView
  3. 设置属性检查。
- 边框

参数 类型 描述 默认值
borderColor UIColor 图层边框的颜色。 UIColor.clear
borderWidth CGFloat 图层边框的宽度。 0
- 圆角半径

参数 类型 描述 默认值
cornerRadius CGFloat 绘制图层背景圆角时使用的半径。 0

查看

使用View进行编程

将 UI 与代码连接

@IBOutlet weak var view: View!

在Storyboard中使用View

使用步骤

  1. 将UIView拖拽到Storyboard。
  2. 将类设置为View
  3. 设置属性检查。
边框

参数 类型 描述 默认值
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

使用步骤

  1. 将UITableView拖拽到Storyboard中。
  2. 将类设置为TableView
  3. 设置属性检查。
- 边框
参数 类型 描述 默认值
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

使用步骤

  1. 将 UICollectionView 拖拽到 Storyboard。
  2. 将类设置为 CollectionView
  3. 设置属性检查。
- 边界
参数 类型 描述 默认值
borderColor UIColor 图层边框的颜色。 UIColor.clear
borderWidth CGFloat 图层边框的宽度。 0

示例

要运行示例项目,请先克隆存储库,然后从 Example 目录中运行 pod install

作者

nattaponph, [email protected]

许可证

ADVHelper 在MIT许可证下可用。有关更多信息,请参阅LICENSE文件。

致谢