Swiftpack.co -  Xezun/XZKit as Swift Package
Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
Xezun/XZKit
一款轻量级 iOS 组件库,包括如轮播图、进度条、加密解密、类目拓展、方便的宏定义等,支持 Swift 语言,欢迎提 Issues 和建议!
.package(url: "https://github.com/Xezun/XZKit.git", from: "4.4.1")

XZKit

Build Version License Platform

环境需求

iOS 8.0, Swift 5.0, Xcode 11.0.

安装集成

推荐使用 CocoaPods 快速集成到项目中。

use_frameworks!

pod "XZKit"

只使用其中某一个子模块,如只使用 CarouselView 模块。

use_frameworks!

pod "XZKit/CarouselView"

需要 CocoaPods 1.7.2 版本以上,请使用 sudo gem install cocoapods 命令更新 CocoaPods 版本。

组件

轮播视图:CarouselView

使用三图轮播机制设计的 XZCarouselView 控件,并且默认提供了无限轮播、自动轮播、手势缩放等功能;提供了获取轮播图滚动进度的接口,更方便做关联的渐变动画。 并且默认实现了图片轮播的控件 XZImageCarouselView 和类似微信朋友圈的大图查看的控件 XZImageViewer ,方便开发者直接使用。

XZKit.CarouselView XZKit.CarouselView XZKit.CarouselView

自定义流布局:XZKit.UICollectionViewFlowLayout

支持功能:水平滚动、垂直滚动、行对齐方式、垂直对齐方式、自适语言的应布局方向。

XZKit.UICollectionViewFlowLayout

App 语言:AppLanguage

提供了更直观的设置 App 语言的接口,且支持应用内语言切换。

XZKit.AppLanguage

网络层协议:Networking

框架 XZKit/Networking 是一个轻量级网络框架,通过一套协议实现了多种常见的网络请求需求:

  • 请求的并发策略、优先级的控制,可以轻松控制请求的顺序,请求与其它请求之间的关系。
  • 请求失败时自动重试,且支持重试前延时。
  • 请求时间限制,与 HTTP 超时不相同,可以控制请求的总时长。
  • 当控制器销毁时,自动取消仍在进行的请求(控制器为请求的所有者时)。

进度条:ProgressView

支持任意弧度的圆形进度条和任意角度的直线形进度条。

计时器:Timekeeper

基于 DispatchSourceTimer 实现的计时器,可以更方便的处理关于累积计时方面的功能。

控制重定向:AppRedirection

提供了一套控制器消息传播机制,通过消息控制页面跳转。

缓存管理:CacheManager

目前该模块只是提供将数据缓存到沙盒 Caches 目录的功能,更多的缓存机制有待开发。

内容状态:ContentStatus

方便的设置视图在内容为空,内容错误等状态时的提示视图。

数据加密:DataCryptor

对原生框架 <CommonCrypto/CommonCryptor.h> 的二次封装,支持 AES、DES、3DES、CAST、RC4、RC2、Blowfish 等算法的对称加密解密。

数据摘要:DataDigester

对原生框架 <CommonCrypto/CommonDigest.h> 的二次封装,支持 MD2、MD4、MD5、SHA1、SHA224、SHA256、SHA384、SHA512 等数据摘要算法。

公共部分:Foundation

原生框架 Foundation 的拓展。

自定义导航条、全屏手势导航控制器:NavigationController

文本图片视图:TextImageView

公共部分:UIKit

公共部分:XZKitConstants

示例代码

所有组件都有单独的示例代码,下载到本地后,代码运行前需在 Pod 目录执行 pod update 安装相关依赖。

更新日志

  • 2020.05.23

基于 DispatchSourceTimer 重构了 DisplayTimer 为 Timekeeper 并设计了新的 API 。

  • 2020.05.10

解决了在 Objective-C 中使用 BOOL 类型作为枚举值,无法桥接为 Swift 类型,而导致无法编译的问题。

  • 2019.04.28

    优化 Git 仓库体积,删除了所有历史提交记录及旧版本,删除体积较大的资源图片,效果图片分离到单独的 static-resources 仓库,尽量保持本仓库较小,减少 Cocoapods 拉取本库的用时。

  • 2019.04.16

    XZKit/CarouselView 进行了优化,添加了 XZCarouselViewController 方便做多控制器轮播;XZCarouselView 重构了重用机制,功能支持使用懒加载机制,未使用缩放、自定义动画功能时,更轻量级;重命名了部分方法名、属性名,统一命名规范。

  • 2019.03.18

    轮播图支持全类型的 UIViewContentMode 模式了。

  • 2019.03.14

    优化了轮播图、继续优化模块结构。

  • 2019.02.27

    为了更方便的引用单个组件,准备重新优化 XZKit 结构,以避免组件间相互依赖关系太多。

  • 2019.01.01

    优化了控制器重定向模块和导航控制器模块,解决了控制器重定向模块在执行重定向与控制器转场可能存在的冲突。

  • 2018.09.17

    网络框架现在支持限制请求的总时长,避免在弱网情况下,即使设置响应超时,也可能无法有效控制请求时长,而导致的页面长时间处于加载状态。

联系作者

developer@xezun.com

License

XZKit is available under the MIT license. Read the LICENSE file for more info.

GitHub

link
Stars: 31
Last commit: 2 days ago

Ad: Job Offers

iOS Software Engineer @ Perry Street Software
Perry Street Software is Jack’d and SCRUFF. We are two of the world’s largest gay, bi, trans and queer social dating apps on iOS and Android. Our brands reach more than 20 million members worldwide so members can connect, meet and express themselves on a platform that prioritizes privacy and security. We invest heavily into SwiftUI and using Swift Packages to modularize the codebase.

Submit a free job ad (while I'm testing this). The analytics numbers for this website are here.

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics