使用教程 https://www.cnblogs.com/hs-funky/p/6780203.html
上京写的 https://www.jianshu.com/p/88d9fb58ef2e
如何更新:
1.修改sosProjectBase组建仓库并修改sosProjectBase.podspec的版本号
2.cd /Users/zhangzuoren/Desktop/sosProjectBase/Example
3.pod install
4.cd /Users/zhangzuoren/Desktop/sosProjectBase
5.git status
6.git add .
7.git commit -m'基础组件'
8.pod lib lint --use-libraries --allow-warnings
9.git status
10.git add .
11.git commit -m '编辑spec文件'
12.git remote add origin https://gitee.com/zhangzuoren/sosProjectBase.git
13.git push origin master
14.git tag '0.1.0' (要与sosProjectBase.podspec文件中的tag值保持一致)
15.git push --tags
16.pod spec lint --use-libraries --allow-warnings
17.pod repo
18.pod repo push sosProjectSpec *.podspec --use-libraries --allow-warnings
目录
CocoaPod:
1.AFNetworking
2.Bugtags
3.CYLTabBarController
4.FMDB
5.IQKeyboardManager
6.Masonry
7.MBProgressHUD
8.MJRefresh
9.pop
10.RTRootNavigationController
11.SDAutoLayout
12.SDWebImage
13.TZImagePickerController
14.YYKit
ProjectBase:
1.BAButton
2.BATextView
3.BMTemplateLayoutCell
4.BRPickerView
5.Color(Chameleon)
6.DZNEmptyDataSet
7.Http
8.JQFMDB
9.Launch(XHLaunchAd)
10.NullSafe
11.XLImageViewer
12.MHActionSheet
13.WZLBadge
14.YJProgressHUDK
Base(基类)
1.BaseViewController
2.BaseModel
3.BaseTableView
4.BaseTableViewCell
5.BaseIconLabel
6.BaseWeb
7.BaseSectionView
8.BaseSelectController
BaseTools(工具类)
1.Category(分类)
2.Const(定义)【包括单例文件创建】
3.Macro(宏)
AFNetworking
https://github.com/AFNetworking/AFNetworking
Bugtags
用户记录并上传用户使用App时的崩溃情况
官网:https://www.bugtags.com/
基本用法:#importBugtagsOptions *options = [[BugtagsOptions alloc] init];
options.trackingCrashes = YES; // 具体可设置的属性请查看 Bugtags.h
#ifdef DEBUG
[Bugtags startWithAppKey:@"APP_KEY" invocationEvent:BTGInvocationEventNone options:options];
#else
[Bugtags startWithAppKey:@"APP_KEY" invocationEvent:BTGInvocationEventNone options:options];
#endif
CYLTabBarController
自定义Tabbar
https://github.com/ChenYilong/CYLTabBarController
基本用法:
需要导入TabBarControllerConfig
#import "TabBarControllerConfig.h"
TabBarControllerConfig *tabBarControllerConfig = [[TabBarControllerConfig alloc] init];
CYLTabBarController *tabBarController = tabBarControllerConfig.tabBarController;
[self.window setRootViewController:tabBarController];
tabBarController.delegate = self;
#pragma mark - tabBarControllerDelegate
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
[[self cyl_tabBarController] updateSelectionStatusIfNeededForTabBarController:tabBarController shouldSelectViewController:viewController];
return YES;
}
-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{
UIView *animationView;
animationView = [viewController.cyl_tabButton cyl_tabImageView];
[self addScaleAnimationOnView:animationView repeatCount:1];
}
#pragma mark - 缩放动画
- (void)addScaleAnimationOnView:(UIView *)animationView repeatCount:(float)repeatCount {
//需要实现的帧动画,这里根据需求自定义
CAKeyframeAnimation *animation = [CAKeyframeAnimation animation];
animation.keyPath = @"transform.scale";
animation.values = @[@1.0,@1.3,@0.9,@1.15,@0.95,@1.02,@1.0];
animation.duration = 1;
animation.repeatCount = repeatCount;
animation.calculationMode = kCAAnimationCubic;
[animationView.layer addAnimation:animation forKey:nil];
}
FMDB
https://github.com/ccgus/fmdb
IQKeyboardManager
https://github.com/hackiftekhar/IQKeyboardManager
基本用法:(只要导入就起作用)
#import "IQKeyboardManager.h"
[IQKeyboardManager sharedManager].shouldResignOnTouchOutside = YES;//点击空白处自动收回键盘
Masonry
https://github.com/SnapKit/Masonry
MBProgressHUD
https://github.com/jdg/MBProgressHUD
MJRefresh
https://github.com/CoderMJLee/MJRefresh
pop
https://github.com/facebook/pop
RTRootNavigationController
自定义的导航栏
https://github.com/rickytan/RTRootNavigationController
SDAutoLayout
自动布局框架
https://github.com/gsdios/SDAutoLayout
SDWebImage
https://github.com/rs/SDWebImage
TZImagePickerController
一个支持多选、选原图和视频的图片选择器,同时有预览、裁剪功能https://github.com/banchichen/TZImagePickerController
基本用法:
#import "TZImagePickerController.h"
TZImagePickerController *imagePickerVc = [[TZImagePickerController alloc] initWithMaxImagesCount:9 delegate:self]; // 你可以通过block或者代理,来得到用户选择的照片.
[imagePickerVc setDidFinishPickingPhotosHandle:^(NSArray *photos, NSArray *assets) {
}];
[self presentViewController:imagePickerVc animated:YES completion:nil];
如果运行在iOS6或7系统上,用的是AssetsLibrary库获取照片资源。
如果运行在iOS8及以上系统上,用的是PhotoKit库获取照片资源。
YYKit
强大的类库,无需解释
https://github.com/ibireme/YYKit
BAButton
1、UIButton 图片、文字自定义布局
2、UIButton 自定义切圆角,可以设置任意一个角的角半径
3、 UIButton 各种状态下背景颜色、字体、border、font、动画等的监测及改变
4、 UIButton 倒计时的封装,两行代码搞定倒计时!
5、注意:文字、字体大小、图片等设置一定要在设置 ba_button_setBAButtonLayoutType 之前设置,要不然计算会以默认字体大小计算,导致位置偏移
BATextView
1、可以自定义 placeholder的(字体、颜色)、文字(字体、颜色)
2、可以自定义 输入文字的(字体、颜色)、文字(字体、颜色)
3、可以自动布局,自适应高度,实时监测输入文字的最大高度
4、可以实时监测输入文字的最大个数,可以限制最大输入文字字数
5、用分类整理,无需改动源码即可实现各种自定义功能
6、【方法新增】:默认 self.text 文字时的属性 ba_text:TextView 默认 text,注意:一定要用 ba_text 设置,用系统的 self.text 设置无效,此外,如果有默认 text,一定要在 ba_placeholder 赋值之前赋值 ba_text,要不然会出现文字颜色错乱!
7、【方法新增】:新增 UITextView 代理 shouldChangeTextInRange 改成 block (ba_textView_ShouldChangeTextInRangeBlock)返回,使用更加方便!
BMTemplateLayoutCell
配合Masonry发挥出强大的Cell自动布局作用
https://github.com/asiosldh/UITableView-BMTemplateLayoutCell
基本用法:
#import "UITableView+BMTemplateLayoutCell.h"
#import "UITableViewCell+BMReusable.h"
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
return [BMMasonryCell bm_cellWithTableView:tableView];
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
BMModel *model = self.dataArray[indexPath.row];
return [tableView bm_heightForCellWithCellClass:BMMasonryCell.class cacheByKey:model.ID configuration:^(__kindof BMMasonryCell *cell) {
cell.model = model;
}];
}
BRPickerView
多功能选择器,包括日期选择器、时间选择器、地址选择器、自定义单列字符串选择器、
自定义多列字符串选择器
https://github.com/borenfocus/BRPickerView
Color(Chameleon)
一套Flat风格的颜色库
https://github.com/viccalexander/Chameleon
DZNEmptyDataSet
缺省页
https://github.com/dzenbot/DZNEmptyDataSet
Http
自己封装的Http网络请求库
内容由上京填写
JQFMDB
基于fmdb封装的数据库使用库
https://github.com/gaojunquan/JQFMDB
Launch(XHLaunchAd)
开屏广告、启动广告解决方案-支持静态/动态图片广告,mp4视频广告,全屏/半屏广告
https://github.com/CoderZhuXH/XHLaunchAd
基本用法:
需导入AppDelegate+XHLaunchAd文件
#import "AppDelegate+XHLaunchAd.h"
/* 启动广告页 */
[self setupXHLaunchAd];
MJExtension
你懂的
NullSafe
在项目开发中,和服务端交互数据时,若服务端数据为空时,会出现 ,客户端解析时会 Crash,为了增强程序的健壮性,减少 Crash 的发生,可以使用 NullSafe 这个类别。它对不识别的类型返回 nil,而不是抛出异常,它减少了例如因为 JSON 解析中 数组或字符串为 null 时导致的 Crash。
使用时只需要把 NullSafe.m 文件拖进工程就可以了,它在程序运行时自动加载,你不需要再导入其他头文件了。
如果想要禁止 NullSafe 的话,需要设置:NULLSAFE_ENABLED=0,或者在 .pch 文件中添加:
#ifdef DEBUG
#define NULLSAFE_ENABLED 0
#endif
XLImageViewer
仿照今日头条的图片浏览工具
https://github.com/mengxianliang/XLImageViewer
基本用法:
#import "XLImageViewer.h"
[[XLImageViewer shareInstanse] showNetImages:@[<图片地址数组>] index:from:];
MHActionSheet
类似微信的ActionSheet
基本用法:
MHActionSheet *actionSheet = [[MHActionSheet alloc] initSheetWithTitle:nil style:MHSheetStyleWeiChat itemTitles:@[@"拍照",@"从相册选取"]];
[actionSheet didFinishSelectIndex:^(NSInteger index, NSString *title) {
}];
WZLBadge
一行代码实现Badge效果
https://github.com/weng1250/WZLBadge
基本用法:
import "WZLBadgeImport.h"
[<#view#> showBadge]
[<#view#> showBadgeWithStyle:WBadgeStyleRedDot value:0 animationType:WBadgeAnimTypeShake]
[<#view#> showBadgeWithStyle:WBadgeStyleNumber value:99 animationType:WBadgeAnimTypeShake]
[<#view#> clearBadge]
[<#view#> resumeBadge]
YJProgressHUDK
1、提示消息
[YJProgressHUD showMessage:@"显示文字,1s隐藏" inView:self.view]; //如果想设置N秒隐藏,用这个[YJProgressHUD showMessage:@"显示文字,Ns隐藏" inView:self.view afterDelayTime:3.0];
2、加载成功
[YJProgressHUD showSuccess:@"加载成功" inview:self.view];
3、加载中 //菊花
[YJProgressHUD showProgress:@"加载中..." inView:self.view];
4、自定义动画(序列帧实现)
BaseViewController
isHidenleftBarItem:是否隐藏导航栏左边返回按钮(如首页等页面,需设置为YES)
leftIsClose:是否显示左边返回按钮为关闭的样式(如present出的页面,需设置为YES)
如需设置导航栏右边按钮,可调用:
[self setupRightItem:<#是否是文字#> rightItem:<#如果是文字,请输入文字内容;如果是图片,请输入图片名称#>];
/* 左右按钮的点击事件 */
-(void)leftItemClick;
-(void)rightItemClick;
BaseModel
预留
BaseTableView
设置缺省页样式,基本的样式已枚举出来,直接调用:[self.tableView setLoadType:<#LoadType#>];
如需自定义样式,可调用方法:
-(void)setLoadTypeCustomWithImage:(UIImage *)image andTitle:(NSString *)title andDes:(NSString *)des;
BaseTableViewCell
设置cell的上方和下方的分割线
直接设置:(默认为CellLineStyleNone)
[cell setBottomLineStyle:<#CellLineStyle#>];
[cell setTopLineStyle:<#CellLineStyle#>];
BaseIconLabel
设置带图标的Label
UIImageView *image=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 16, 16)];
image.image=[UIImage imageNamed:@"<图片名称>"];
_iconLabel=[[BaseIconLabel alloc] init];
_iconLabel.direction = kIconAtLeft; //设置图标在左文字在右
_iconLabel.gap = 5.f; //设置图标和文字间隔
_iconLabel.iconView = image; //设置图标图片
[self.view addSubview:_iconLabel];
[_iconLabel sizeToFitWithText:@"<文字内容>"]; //设置文字内容,label会根据文字长度自动拉伸,通过_iconLabel.width来获得适配后的宽度
BaseWeb
跳转并访问一个外部链接
BaseWeb *web=[BaseWeb new];
[web loadWebURLSring:@"<链接地址>"];
[self.navigationController pushViewController:web animated:YES];
BaseSectionView
+(BaseSectionView *)initWithColor:(UIColor *)color;//返回一个sectionView
BaseSelectController
仅支持单选的控制器,传入标题、可选择的值与已选的值,并设置block
@property (nonatomic, copy) void(^selectBlock)(NSString *value);
-(void)setTitle:(NSString *)title andValues:(NSArray *)values andSelectValue:(NSString *)selectValue;