HBSwiftTools 0.0.9

HBSwiftTools 0.0.9

jiutianhuanpei 维护。



  • jiutianhuanpei

HBSwiftTools


本库是个人总结的一些常用类扩展及通用方法,会不定期更新。

支持 Cocoapods 安装:

pod 'HBSwiftTools'

现有文件

文件名 描述
CIFilter+HB.swift CIFilter 的扩展
Data+HB.swift Data 的扩展
Dictionary+HB.swift Dictionary 的扩展
DispatchTime+HB.swift DispatchTime 的扩展
HBPublicFunctions.swift 公共的全局方法
String+HB.swift String 的扩展
UIButton+HB.swift UIButton 的扩展
UICollectionView+HB.swift UICollectionView 的扩展
UIColor+HB.swift UIColor 的扩展
UIControl+HB.swift UIControl 的扩展
UIImage+HB.swift UIImage 的扩展
UITableView+HB.swift UITableView 的扩展
UIView+HB.swift UIView 的扩展


<style> b { font-size: 20px; } </style>

CIFilter+HB.swift

这个文件是 CIFilter 的相关扩展,由于系统对 CIFilter 的初始化方法不太友好,所以这里也扩展了对它的初始化方法。

系统的初始化方法是传入一个 name 字符串,天晓得当初的那个“猿”是怎么想的,竟设计出这样牛逼的 API,主要是这些字符串实在不好记,不好写,好在有个 API 是获取这些字符串数组的,所以我把这些字符串都拿了出来,封装成了 CIFilterName 枚举值,这样好记一些。

对我来说,这个类用得最多的还是生成二维码,所以对生成二维码相关又进行了一些封装。

首先是对容错级别封装成了 QRCorrectionLevel 枚举;

再就是对相应的 Filter 初始化进行了封装。


API 描述
init?(name: CIFilterName) 根据传入的 CIFilterName 枚举值生成 CIFilter 实例
init?(qrText: String, correctionLevel: QRCorrectionLevel = .M) 根据传入的字符串和 QRCorrectionLevel 枚举值生成一个 CIQRCodeGenerator 实例

Data+HB.swift

API 描述
var md5: String 获取二进制文件的 md5 值

Dictionary+HB.swift

API 描述
func string(for key: Key) -> String 返回字典对应 key 下的 String 类型的 value
func int(for key: Key) -> Int 返回字典对应 key 下的 Int 类型的 value
func bool(for key: Key) -> String 返回字典对应 key 下的 Bool 类型的 value
func float(for key: Key) -> String 返回字典对应 key 下的 Float 类型的 value
func double(for key: Key) -> String 返回字典对应 key 下的 Double 类型的 value
func HBValue<T>(_ key: Key, default: T) -> T 返回字典对应 key 下的 T 类型的 value; 如字典为 ["name": "Jim"], 若传入 default == 0: Int, 则因为 "Jim" 转换成 Int 类型会失败,所以方法将返回 0

DispatchTime+HB.swift

DispatchTime 添加了两个用 IntDouble 类型初始化的方法,方便在 asyncAfter 方法中的调用。

eg:

//延时2秒执行
DispatchQueue.main.asyncAfter(deadline: 2) {
	// do something
}
//延时1.5秒执行
DispatchQueue.main.asyncAfter(deadline: 1.5) {
	// do something
}

HBPublicFunctions.swift

定义了一些公共的全局方法。

API 描述
public func HBInMainThread(_ handler: @escaping ()>Void) 在主线程执行代码的 Closure
public var DocumentPath: String 获取 Documents 文件夹的路径
public func FolderPathInDocuments(with folderName: String) -> String 获取在“Documents”文件夹下的文件夹路径,若不存在则创建

String+HB.swift

String的扩展方法。

API 描述
func subString(range: T) -> String 字符串截取。例如:"0123456789".subString(3..<7)
func toRange(range: NSRange) -> Range? NSRange 转 Range
func toNSRange(range: Range) -> NSRange? Range 转 NSRange
func range(with str: String) -> NSRange? 获取子字符串在字符串中的位置
var intValue: Int 字符串转 Int,取值失败返回 NSNotFound
var floatValue: Float 字符串转 Float,取值失败返回 Float(NSNotFound)
var doubleValue: Double 字符串转 Double,取值失败返回 Double(NSNotFound)
var UIntValue: UInt 字符串转 UInt,取值失败返回 UInt(NSNotFound)
var UInt8Value: UInt8 字符串转 UInt8,取值失败返回 UInt8(NSNotFound)
var UInt16Value: UInt16 字符串转 UInt16,取值失败返回 UInt16(NSNotFound)
var UInt32Value: UInt32 字符串转 UInt32,取值失败返回 UInt32(NSNotFound)
var UInt64Value: UInt64 字符串转 UInt64,取值失败返回 UInt64(NSNotFound)
var boolValue: Bool 字符串转 Bool,取值失败返回 false
var md5: String 获取字符串的md5值
var data: Data 字符串转 Data
func convertToImage() -> UIImage?[^toImage] base64字符串转图片

UIButton+HB.swift

API 描述
func set(title: String?, titleColor: UIColor?, for state: UIControl.State) 设置按钮的文本、文本颜色

UICollectionView+HB.swift

API 描述
func registerCells(_ cellClasses: AnyClass ...) 注册多个cell,传入cell类型,对应identifier == "(class)"
func registerSectionHeaders(_ viewClasses: AnyClass ...) 注册多个区头,传入view类型,对应identifier == "(class)"
func registerSectionFooters(_ viewClasses: AnyClass ...) 注册多个区尾,传入view类型,对应identifier == "(class)"

UIColor+HB.swift

API 描述
便利构造函数?(_ hexStr: String, alpha: CGFloat = 1) 生成十六进制颜色
便利构造函数(_ hexInt: Int, alpha: CGFloat = 1) 生成十六进制颜色

UIControl+HB.swift

API 描述
便利构造函数(_ hexInt: Int, alpha: CGFloat = 1) 使用事件触发方式Event,及事件回调Closure初始化一个控件

UIImage+HB.swift

API 描述
便利构造函数?(_ qrText: String, width: CGFloat = 100) 根据文案生成二维码图片
var qrText: String? 识别二维码图片的文案
var base64String: String[^toString] 图片转base64字符串
func zoom(to: CGSize) -> UIImage 图像缩放,若失败则返回一个size == (0, 0)的实例
便利构造函数?(_ color: UIColor, size: CGSize = CGSize(width: 1, height: 1)) 根据颜色生成一张纯色的图片

UITableView+HB.swift

API 描述
func registerCells(_ cellClasses: AnyClass ...) 注册多个cell,传入cell类型,对应identifier == "(class)"
func registerHeaderFooterViews(_ viewClasses: AnyClass ...) 注册多个区头或区尾,传入view类型,对应identifier == "(class)"

UIView+HB.swift

API 描述
var x: CGFloat 获取或设置view的minX
var y: CGFloat 获取或设置view的minY
var width: CGFloat 获取或设置view的width
var height: CGFloat 获取或设置view的height
func addSubViews(_ views: UIView ...) 添加多个子视图

[^toImage]: 可以转图片的字符串,必须是由图片转换成的base64字符串。

[^toString]: 图片转换成base64字符串,可以用func convertToImage() -> UIImage?方法再转成图片。