Latest 0.2.2
Homepage https://github.com/dvlproad/CJUIKit
License MIT
Platforms ios 8.0, requires ARC
Frameworks UIKit
Authors

目录

一、CJBaseUIKit:自定义的基础UI控件

< 返回目录

自定义的基础UI控件

内容如下:

  • CJBaseUIKit/UIColor:颜色:用来通过十六进制来设置颜色。 支持@“#123456”、 @“0X123456”、 @“123456”三种格式
  • CJBaseUIKit/UIImage:图片
  • CJBaseUIKit/UINavigationBar:导航栏

  • CJBaseUIKit/UIView:视图
  • CJBaseUIKit/UIView/CJDragAction:视图拖动
  • CJBaseUIKit/UIView/CJShakeAction:视图抖动
  • CJBaseUIKit/UIView/CJPopupAction:视图弹窗:UIView的类别,用来实现UIView弹出popupView的一个Uiew的类别
  • CJBaseUIKit/UIView/CJGestureRecognizer:视图手势

  • CJBaseUIKit/UIWindow:窗口
  • CJBaseUIKit/UIButton:按钮 及 CJBadgeButton
  • CJBaseUIKit/UITextField:文本视图:包含文本框类别及新的自定义文本框
  • CJBaseUIKit/CJTextView:文本视图:类似微信文本输入框实现
  • CJBaseUIKit/UIToolbar:工具栏
  • CJBaseUIKit/CJScrollView:滚动视图:自定义的基础滚动视图

  • CJBaseUIKit/CJTableView:列表视图
  • CJBaseUIKit/CJTableView/CJBaseTableViewCell:基础的TableViewCell
  • CJBaseUIKit/CJTableView/CJBaseTableViewHeaderFooterView

  • CJBaseUIKit/CJCollectionView:集合视图
  • CJBaseUIKit/CJCollectionView/CJBaseCollectionViewCell:基础的CollectionViewCell
  • CJBaseUIKit/CJCollectionView/CJCollectionViewLayout
  • CJBaseUIKit/CJCollectionView/MyEqualCellSizeCollectionView:一个只有一个分区且分区中的每个cell大小相等的集合视图(cell的大小可通过方法①设置cell的固定大小和方法②通过设置每行最大显示的cell个数获得)
  • CJBaseUIKit/CJCollectionView/CJOpenCollectionView:可展开的集合视图

  • CJBaseUIKit/CJSlider:滑块
  • CJBaseUIKit/CJRefreshView:刷新
  • CJBaseUIKit/CJMJRefreshComponent:已包含pod ‘MJRefresh’
  • CJBaseUIKit/CJToast:Toast
  • CJBaseUIKit/CJDataEmptyView:空视图(处理数据为空、网络加载失败等情况)
    待完善

如果只想加载某个类,可以用形如pod 'CJBaseUIKit/CJTextView', '~> 0.0.1'来加载

1、CJBaseUIKit/UIColor:颜色

UIColor+CJHex用来通过十六进制来设置颜色。 支持@“#123456”、 @“0X123456”、 @“123456”三种格式

2、CJBaseUIKit/UIImage:图片

(1)、UIImage+CJChangeColor

参考:iOS中使用blend改变图片颜色

问题来源:在应用里一个很常见的需求是主题变换:同样的图标,同样的素材,但是需要按照用户喜爱变为不同的颜色。

3、CJBaseUIKit/UINavigationBar:导航栏

4、CJBaseUIKit/UIView:视图

(1)、CJBaseUIKit/UIView/CJDragAction:视图拖动
(2)、CJBaseUIKit/UIView/CJShakeAction:视图抖动
(3)、CJBaseUIKit/UIView/CJPopupAction:视图弹窗:UIView的类别,用来实现UIView弹出popupView的一个Uiew的类别
(4)、CJBaseUIKit/UIView/CJGestureRecognizer:视图手势

5、CJBaseUIKit/UIWindow:窗口

6、CJBaseUIKit/UIButton:按钮

CJBaseUIKit/UIButton:按钮 及 CJBadgeButton

7、CJBaseUIKit/UITextField:文本视图:包含文本框类别及新的自定义文本框

8、CJBaseUIKit/CJTextView:文本视图:类似微信文本输入框实现

类似微信文本输入框实现

功能:

  1. 有占位符placeholderView
  2. 可设置最大行数maxNumberOfLines,当超过最大行文本框不在自增长长度

9、CJBaseUIKit/UIToolbar:工具栏

10、CJBaseUIKit/CJScrollView:滚动视图:自定义的基础滚动视图

11、CJBaseUIKit/CJTableView:列表视图

(1)、CJBaseUIKit/CJTableView/CJBaseTableViewCell:基础的TableViewCell
(2)、CJBaseUIKit/CJTableView/CJBaseTableViewHeaderFooterView

12、CJBaseUIKit/CJCollectionView:集合视图

(1)、CJBaseUIKit/CJCollectionView/CJBaseCollectionViewCell:基础的CollectionViewCell
(2)、CJBaseUIKit/CJCollectionView/CJCollectionViewLayout
(3)、CJBaseUIKit/CJCollectionView/MyEqualCellSizeCollectionView:一个只有一个分区且分区中的每个cell大小相等的集合视图(cell的大小可通过方法①设置cell的固定大小和方法②通过设置每行最大显示的cell个数获得)
(4)、CJBaseUIKit/CJCollectionView/CJOpenCollectionView:可展开的集合视图

13、CJBaseUIKit/CJSlider:滑块

14、CJBaseUIKit/CJRefreshView:刷新

15、CJBaseUIKit/CJMJRefreshComponent:已包含pod ‘MJRefresh’

16、CJBaseUIKit/CJToast:Toast

17、CJBaseUIKit/CJAlert:Alert

18、 CJBaseUIKit/CJDataEmptyView:空视图(处理数据为空、网络加载失败等情况)

待完善

二、CJComplexUIKit:自定义的稍微复杂的UI

< 返回目录

  • CJComplexUIKit/UIViewController:视图控制器相关
  • CJComplexUIKit/UIViewController/CJCategory:控制器的分类:包含对视图控制器返回按钮的操作自定义等
  • CJComplexUIKit/UIViewController/CJBaseWebViewController:基本的网页浏览器,包含了加载进度和空网页操作

  • CJComplexUIKit/CJDataScrollView:含数据
  • CJComplexUIKit/CJDataScrollView/SearchScrollView
  • CJComplexUIKit/CJDataScrollView/ImagePickerCollectionlView

三、CJFoundation:系统Foundation的扩展

< 返回目录

  • CJFoundation/NSString:包含字符串的各种相关操作(获取长度、判断是否手机号码等等等)
  • CJFoundation/NSDictionary:包含字典的各种相关操作
  • CJFoundation/NSJSONSerialization:模型转换

四、CJBaseUtil:自定义的基础工具类

< 返回目录

  • CJBaseUtil/CJLog:日志输出工具
  • CJBaseUtil/CJIndentedStringUtil:将类转成字符串,并缩进的工具
  • CJBaseUtil/CJAppLastUtil:获取APP上次退出时候的信息工具
  • CJBaseUtil/CJDataUtil:数据工具(包含分类、排序、搜索以及一些基本的数据模型等)
  • CJBaseUtil/CJDateUtil:日期工具
  • CJBaseUtil/CJKeyboardUtil:键盘工具
  • CJBaseUtil/UIUtil:UI工具
  • CJBaseUtil/CJCallUtil:调用系统功能的工具,如拨打电话
  • CJBaseUtil/CJQRCodeUtil:二维码工具,如使用字符串生成二维码
  • CJBaseUtil/CJLaunchImageUtil:启动页工具

  • CJBaseUtil/CJManager
  • CJBaseUtil/CJManager/CJModuleManager:模块化管理器
  • CJBaseUtil/CJManager/CJLocationChangeManager:位置服务管理,包含位置更新等
  • CJBaseUtil/CJManager/CJTimerManager:定时器管理器,如一个登录页需要短信验证码和语音验证码,但只使用一个定时器。
  • CJBaseUtil/CJPinyinHelper:字符串转拼音工具

五、CJBaseHelper:自定义的基础帮助类

< 返回目录

  • CJBaseUtil/DeviceCJHelper:获取设备信息
  • CJBaseHelper/NSObjectCJHelper:对象判断帮助类
  • CJBaseHelper/UIViewControllerCJHelper:视图控制器帮助类:包含获取当前显示的视图控制器和通过视图找到它所在的视图控制器等
  • CJBaseHelper/NSOperationQueueCJHelper:多任务处理
  • CJBaseHelper/WebCJHelper:Web工具,包含清除缓存

其他

< 返回目录

1、顶部图片下拉放大、上推缩小

下拉放大原理:其实就是利用下拉的时候,根据contentOffset来对应跟新顶部视图的frame。
需求①:由于我们的顶部视图必须满足能够拖动,所以我们的顶部视图肯定是依赖于UIScrollView移动的。①如果我们的顶部视图是被添加到scrollView上,我们可以利用ScrollView的contentInset来将滚动视图的顶部留给顶部视图。随后,在滚动过程中如果发现是下拉滚动,则将顶部视图的frame根据滚动的contentOffset来减小它的y及增大它的height即可了。 ②如果我们的顶部视图是被添加到与scrollView同层级的view上,由于我们要满足在顶部上可以触发滚动,所以我们的顶部视图肯定还是得依赖于UIScrollView的滚动的。那么也就代表着我们的顶部视图其实还是应该看起来像是占据着ScrollView的contentInset的顶部的,也就是说我们得利用ScrollView的contentInset来将滚动视图的顶部留给顶部视图。且我们的view必须在ScrollView之下,而为了

    //[self.view addSubview:self.headerView]; //错误,因为放置位置错误

    [self.view insertSubview:self.headerView belowSubview:self.tableView]; //正确的放置位置(附:此时点击headerView上的操作是可以被触发的)
    self.tableView.backgroundColor = [UIColor clearColor]; //记得弄透明,以此来解决位置正确后被遮挡的问题

版本介绍/更新记录

  • 2018-09-15
  1. 调整项目结构

CJBaseUIKit

  • 2018-10-16 V0.3.0
  1. UIView+CJPopupInView 增加设置空白区域的背景颜色blankBGColor;
  • 2018-10-10 V0.2.9
  1. 去除CJBadgeImageView,改为CJBadgeButton
  2. 添加UIViewController+CJSystemComposeView,处理添加childViewController以及转换的方法;
  • 2018-09-27 V0.2.6
  1. CJTextField增加添加下划线和设置支持selected的左侧图片
  • 2018-09-22 V0.2.4
  1. 修复CJTextView自定义的placeholder无法改变字体大小的问题;
  2. 增加UIButton设置高亮时候的背景色方法。

CJComplexUIKit

  • 2018-09-27 V0.2.0
  1. 转移CJDataEmptyView到CJBaseUIKit上

CJBaseUtil

  • 2018-08-29 V0.3.1
  1. CJLog里增加CJLogViewWindow一个在 iOS 设备屏幕上实时打印 Log 的小工具;
  2. CJManager下增加管理悬浮窗的CJSuspendWindowManager,用来处理防止重复生成等。

CJBaseHelper

  • 2018-09-22 V0.0.6
  1. 转移CJBaseUtil中的CJDateFormatterUtil为NSDateFormatterCJHelper

  2. 转移CJBaseUtil中的CJCalendarUtil为NSCalendarCJHelper
  • 2018-09-15 V0.0.5
  1. 更改对象判空的类名为NSObjectCJHelper

  2. DeviceCJHelper增加getIPAddressByHostName:根据域名host获取ip的方法

Author Or Contact

结束语

欢迎Stat、Follow、Fork、Pull Request!

Latest podspec

{
    "name": "CJComplexUIKit",
    "version": "0.2.2",
    "summary": "u81eau5b9au4e49u7684u7a0du5faeu590du6742u7684UI",
    "homepage": "https://github.com/dvlproad/CJUIKit",
    "description": "*u3001CJDataScrollViewuff1au5e26u6570u636eu7684u5217u8868u89c6u56feu6216u96c6u5408u89c6u56fe(u5e38u7528u4e8eu641cu7d22u3001u56feu7247u9009u62e9)nn A longer description of CJComplexUIKit in Markdown format.nn * Think: Why did you write this? What is the focus? What does it do?n * CocoaPods will be using this to generate tags, and improve search results.n * Try to keep it short, snappy and to the point.n * Finally, don't worry about the indent, CocoaPods strips it!",
    "license": "MIT",
    "authors": {
        "dvlproad": ""
    },
    "platforms": {
        "ios": "8.0"
    },
    "source": {
        "git": "https://github.com/dvlproad/CJUIKit.git",
        "tag": "CJComplexUIKit_0.2.2"
    },
    "source_files": "CJComplexUIKit/*.{h,m}",
    "frameworks": "UIKit",
    "requires_arc": true,
    "subspecs": [
        {
            "name": "UIViewController",
            "subspecs": [
                {
                    "name": "CJBaseWebViewController",
                    "source_files": "CJComplexUIKit/UIViewController/CJBaseWebViewController/**/*.{h,m}",
                    "dependencies": {
                        "Masonry": [],
                        "SVProgressHUD": [],
                        "CJBaseHelper/WebCJHelper": []
                    }
                }
            ]
        },
        {
            "name": "CJDataScrollView",
            "subspecs": [
                {
                    "name": "SearchScrollView",
                    "source_files": "CJComplexUIKit/CJDataScrollView/SearchScrollView/**/*.{h,m}",
                    "dependencies": {
                        "CJBaseUIKit/CJCollectionView/MyEqualCellSizeCollectionView": [],
                        "CJBaseUtil/CJDataUtil": []
                    }
                },
                {
                    "name": "ImagePickerCollectionlView",
                    "source_files": "CJComplexUIKit/CJDataScrollView/ImagePickerCollectionlView/**/*.{h,m}",
                    "resources": "CJComplexUIKit/CJDataScrollView/ImagePickerCollectionlView/**/*.{png,xib,bundle}",
                    "frameworks": "MediaPlayer",
                    "dependencies": {
                        "JGActionSheet": [],
                        "CJBaseUIKit/CJCollectionView/MyEqualCellSizeCollectionView": [],
                        "CJBaseUIKit/CJCollectionView/CJBaseCollectionViewCell": [],
                        "CJMedia/CJUploadImagePickerUtil": []
                    }
                }
            ]
        }
    ]
}

Pin It on Pinterest

Share This