测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可 | MIT |
发布上次发布 | 2016年10月 |
SPM支持 SPM | ✗ |
由 Atomic Avocado,Alessandro Nakamuta 维护。
依赖项 | |
Cartography | ~> 0.7 |
ChameleonFramework/Swift | ~> 2.1 |
FontAwesome.swift | ~> 0.7 |
Kingfisher | ~> 2.4 |
Material | ~> 1.41 |
Moya-ObjectMapper/RxSwift | ~> 1.3 |
Moya/RxSwift | = 7.0.0 |
ReachabilitySwift | ~> 2.3 |
RxCocoa | ~> 2.5 |
TZStackView | = 1.2.0 |
HMSegmentedControl | ~> 1.5 |
INSPullToRefresh | ~> 1.1 |
MMDrawerController | ~> 0.6 |
NSStringMask | ~> 1.2 |
SpinKit | ~> 1.2 |
TPKeyboardAvoiding | ~> 1.3 |
Jera Utils 是一个 Pod,包含了我们在大多数应用程序中使用的所有基本工具。
它仍在开发测试中,所以如果您不是 Jera 团队成员,请自行承担风险使用它。
首先,将 JeraUtils 导入到您的类中
import JeraUtils
为了使用此类及其方法,您的控制器必须继承自 JeraBaseViewController。我们建议创建自己的 Base V.C,继承自 JeraUtils,以便您可以根据项目进行调整。
class BaseViewController: JeraBaseViewController { }
BaseViewController 默认有以下子视图:[scrollView, tableView, collectionView, stackView],它们创建在Insets (0,0,0,0)处。如果想在控制器中使用 tableView,只需将其填充到变量中,处理它是否为 null,然后返回您正在使用的视图。
override func viewDidLoad() {
super.viewDidLoad()
tableView.separatorStyle = .None
tableView.registerNib(R.nib.aboutHeaderCell)
tableView.dataSource = self
tableView.delegate = self
}
请注意,您打算使用的视图的代理必须由您的控制器实现。
将关闭选项添加到导航控制器中,在点击时调用关闭函数
self.addCloseButton()
当以模态打开时,它将关闭 viewController,否则它将将其弹出。
self.close()
返回控制器是否作为模态打开。
if self.isModal() {
print("This ViewController is opened as a Modal")
}
监听键盘显示或隐藏的行为,并据此调整视图。
self.listenKeyboard()
AlertManager拥有一个静态变量sharedManager,必须使用它来调用其方法。
在屏幕上创建一个警报并显示。
AlertManager.sharedManager.alert(title: "WARNING", message: "Execute order 66", options: ["OK"], hasCancel: true, preferredStyle: .Alert, presenterViewController: self).subscribeNext({ [weak self] (option) -> Void in
if let strongSelf = self {
switch option {
case .Button:
self.executeOrder66()
default:
self.cancelOrder66()
}
}
}).addDisposableTo(disposeBag)
在屏幕上创建一个错误警报并显示。
AlertManager.sharedManager.error(error, presenterViewController: self).subscribeNext({ [weak self] (option) -> Void in
if let strongSelf = self {
switch option {
case .Retry:
strongSelf.retry()
default:
break
}
}
}).addDisposableTo(strongSelf.alertDisposeBag)
一个包含顶部进度条的WKWebView扩展。其变量“progress”可以接受一个颜色。
let webView = JeraWebView()
webView.progressView.tintColor = UIColor.redColor()
PullToRefresh类是一个ScrollView辅助器,具有以下两个方法。
给ScrollView添加下拉刷新功能。
PullToRefreshHelper.addPullToRefreshToScrollView(myTableView) { [weak self] (myTableView) -> Void in
self?.refreshMyTableView()
}
给ScrollView添加分页功能。
PullToRefreshHelper.addInfinityScrollRefreshView(myTableView) { [weak self] (myTableView) -> Void in
self?.loadNextPage()
}
显示自定义视图弹窗
HudManager.showCustomView(myCustomView)
关闭由 HUDManager 显示或即将显示的视图。
HudManager.dismissHudView(myCustomView)
以吐司形式显示文本 HUDView。
HudManager.showToastWithText(text: "Execute order 66", dismissAfter: 10)
显示一个动画加载消息。
myViewController.showLoadingText("Loading position...", type: .Compass)
在视图中显示消息。其主要目的是显示连接问题消息。该消息通常会包含一个重试按钮。
myViewController.showMessageText(translateMoyaError(error).localizedDescription, messageType: .ConnectionError, reloadBlock: { [weak self] () -> Void in
self?.reloadMyView()
})
变量
在用户使用应用时显示接收到的推送通知。
将设备 Token 的 NSData 转换为 String 并将其分配给 deviceToken 变量
将 Device Token 作为 NSData 转换为 String
请求权限并注册用户以接收具有声音、警报和徽章的远程通知。
它是一个辅助工具,可以轻松地使用 Reachability 检查连接状态。
这个静态变量将尝试启动互联网连接的可用性检查,并在无法做到时在控制台记录。应在其调用 reachability 方法时使用。
ReachabilityHelper.sharedReachabilty.isReachable()
使用响应式编程来观察连接状态的所有变化。
ReachabilityHelper.reachabilityChangedObservable().subscribeNext { [weak self] (reachability) -> Void in
switch reachability.currentReachabilityStatus {
case .ReachableViaWiFi:
self?.request()
case .ReachableViaWWAN:
break
case .NotReachable:
break
}
}.addDisposableTo(disposeBag)
处理 Moya 返回的错误并返回正确的 NSError
swift HudManager.showToastWithText(translateMoyaError(error).localizedDescription, dismissAfter: 15.0)
一组类,用于将 API 发送的变量从一种类型转换为期望的类型,并在需要将数据发送回 API 时将其转换回 API 需要的类型。TransformTypes 中的所有以下类都有两个方法
//Transforms the type sent by the API into the type you expect.
transformFromJSON()
//Transformms the type you have back into the type expected by the API
transformToJSON()
当 API 向你发送 Int 并预期为 String 时使用
当 API 向你发送 String 并预期为 Int 时使用。
当 API 将 CPF 作为 Int 发送并预期为 String 时使用。
当 API 向你发送 Double 并预期为 String 时使用。
在API发送空字符串而期望接收Null对象时使用。
在API发送您1或0,而您期望分别是True或False时使用。
在API以不寻常的格式发送您一个URL字符串时使用。然后尝试以多种方式从接收到的字符串中制作一个可用的URL。
当API发送自1970年以来的毫秒日期给您,而您期望的是NSDate时使用。
当API发送日期字符串而您期望的是NSDate时使用。它有3个扩展,分别对应以下日期格式
任何错误都可以通过向我们的git仓库提交pull request或通过电子邮件发送到[email protected]或[email protected]报告。
JeraUtils由Jera拥有并维护。您可以在Twitter上关注我们@jerasoftware,在Facebook上关注Jera。
JeraUtils采用MIT许可证发布。详细信息请参阅LICENSE。