内容字号:默认大号超大号

段落设置:段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

Swift工具类总结

2018-01-10 20:46 出处:清屏网 人气: 评论(0

swift出来也好长时间了,现在swift出到了4.0,版本也相对比较稳定了,所以决定准备用swift来开发新的项目。俗话说工欲善其事,必先利其器,所以在开始正式写项目之前我总结了一些常用的工具类,这里拿出来跟大家一起分享一下,欢迎提出意见啊

三大模块

UIView

  • CountDownView 倒计时类
  • JHPOPAlertView 简单的封装UIAlertController
  • Label+JHExtension label的扩展
  • UIButton+JHExtension button的扩展
  • Textfield+JHExtension Textfield的扩展

NSObject

  • ConstantsFile 一些常量
  • String+JHExtension 字符串的扩展
  • Dictionary+JHExtension 字典的扩展
  • UIImage+JHExtension UIImage的扩展
  • TimeUntil 时间的扩展

ThirdParty

  • JHNetManagerAPI 网络请求 基于Alamofire的封装
  • ScroView+JHRefresh 刷新 基于MJRefresh对UIScrollView的扩展
  • ScrollView+JHEmptyDataSet 空白页 基于DZNEmptyDataSet对UIScrollView的扩展
  • JHProgressHUD 刷新 基于MBProgressHUD的封装
  • JHWebViewController 带进度条的WKWebView

工具类SwiftTools地址

UIView

CountDownView倒计时类的使用

let down = CountDownView(frame: CGRect(x: 100, y: 100, width: 100, height: 50))
       ///创建SendButton 并接受 SendButton 事件
       down.CreateSendButtonWithAcceptEvent {
           //在网络发送成功以后开启倒计时
           down.openCountDown()
       }
       self.view.addSubview(down)

JHPOPAlertView

就一个方法,通过枚举来确定弹出哪一种

enum POPType {
    case alert
    case actionSheet
}
JHPOPAlertView.POPAlertView(message: <#T##String#>, titleArr: <#T##[String]#>, type: <#T##POPType#>, complete: <#T##((NSInteger) -> (Void))##((NSInteger) -> (Void))##(NSInteger) -> (Void)#>)

Label+JHExtension

四个方法

  • 1、遍历构造函数 label
convenience init(title:String,color:UIColor,backColor:UIColor?,fondSize:CGFloat?){}
  • 2、改变字间距
func changeWordSpace(space:Float){}
  • 3、改变行间距
func changeLineSpace(space:Float) {}
  • 4、改变行间距和字间距
func changeLineSpaceWithWordSpace(lineSpace:Float,wordSpace:Float) {}

UIButton+JHExtension

button的便利构造函数

convenience init(title:String,fontSize:CGFloat?,color:UIColor?,backColor:UIColor?) {}

Textfield+JHExtension

给 Textfield 添加了一个扩展方法,设定文本距离左侧的距离

func leftWidth(_ leftWidth: CGFloat){}

NSObject

ConstantsFile

设置了一些常量

  • RGB转化
  • 十六进制转化颜色
  • 一些高度的宏定义
  • 切圆角&加边框
  • 输出日志

String+JHExtension

  • 1、获取指定位置和大小的字符串
public func subStringFrom(index: Int,length:Int) -> String {}
  • 2、将字符串通过特定的字符串拆分为字符串数组
func split(string:String) -> [String] {}
  • 3、获取文本高度
func obtainTextHeight(font : UIFont = UIFont.systemFont(ofSize: 18), fixedWidth : CGFloat) -> CGFloat {}
  • 4、获取文本宽度
func obtainTextWidth(font : UIFont = UIFont.systemFont(ofSize: 17)) -> CGFloat {}

Dictionary+JHExtension

拼接字典

mutating func addDictionary(_ para:Dictionary?) -> Dictionary{}

TimeUntil

  • 1、获取当前时间 字符串
class func CurrentStingTime() -> String {}
  • 2、 获取当前时间 date
class func CurrentDateTime() -> Date {}
  • 3、返回当前时间戳
class func CurrentStampTime() -> u_long {}
  • 4、返回 星期
func getTheDayOfTheWeekByDateString(date:String) -> String {}

UIImage+JHExtension

  • 1、将图片绘制成制定大小
public class func scaleTo(image: UIImage, w: CGFloat, h: CGFloat) -> UIImage{}
  • 2、颜色生成image
public class func WithColor(color:UIColor) -> UIImage {}
  • 3、view生成指定大小的图片
public class func WithView(view:UIView ,size:CGSize) -> UIImage {}
  • 4、将图片压缩到指定倍数
public func compressImage(rate: CGFloat) -> Data? {}

ThirdParty

JHNetManagerAPI

里面就简单的封装了一个网络请求类

JHProgressHUD

  • 1、显示文本
class func ShowMessage(text:String) {}
  • 2、显示带文本的 圆圈
class func ShowloadingWithMessage(text:String?) {}

-3、隐藏 加载框

class func dismissHUD()  {}

:sparkles: ScrollView+JHRefresh

刷新 基于MJRefresh对UIScrollView的扩展,我们在调用的时候不需要在单独在每一个类里面写刷新方法了,自需要调用一句话就可以添加刷新功能

刷新方法

func addRefreshWithScrollView(refreshHeaderClosure:@escaping()->(),refreshFooterClosure:@escaping()->()) {}
  • 添加头部刷新事件
func addRefreshHeaderWithScrollView(refreshClosure:@escaping()->()) {}
  • 下拉加载
func addRefreshFooterWithScrollView(refreshClosure:@escaping()->()) {}
  • 结束刷新
func endRefreshWithTableView() {}

:sparkles: ScrollView+JHEmptyDataSet

空白页 基于DZNEmptyDataSet对UIScrollView的扩展。这个方法里面在扩展里面添加属性和闭包,需要运用到运行时的方法,我们在使用的时候不需要在每一个tableview里面写入代理方法了

  • 设置空白页text。image。偏移量
func SetUPEmptyTextWithEmptyImageWithOffSet(text:String,image:String,offSet:CGFloat) {}
  • 设置空白页text。image
func SetUPEmptyTextWithEmptyImage(text:String,image:String){}
  • 仅仅设置空白页图片
func SetUPEmptyText(image:String){}
  • 仅仅设置空白页文本
func SetUPEmptyText(text:String){}
  • 点击空白页回调
func obtainClickClosure(Closure:@escaping clickTipClosure) {}
分享给小伙伴们:
本文标签: Swift

相关文章

发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

CopyRight © 2015-2016 QingPingShan.com , All Rights Reserved.

清屏网 版权所有 豫ICP备15026204号