iOS总结
1.网络封装, 各种加载效果,实现界面先要考虑刷新加载
2.自定义控件坐标用父坐标来写,不要写死
3.baseviewcontroller 让所有viewcontroller都继承于它, 在里面进行统一操作,如全局通知(每次从后台进来后都刷新数据)
4.刷新加载在网络请求failer中停止
5.占位图要提前设计好多套(1)头像 (2)正方形(3)不规则图形(4);
6.类的集成,夜间模式 uitableviewcell
7.新建工程注意事项(1)修改网络设置,支持https (2)
8.证书失效,删除DRCA过期证书,重新下载https://developer.apple.com/certificationauthority/AppleWWDRCA.cer 删除旧的开发证书,重新生成并下载,运行app 遇到错误提示点击reset证书
9.使用GPS需要一份免责声明放到app描述里面, 具体可以参考百度地图 可在价格与销售范围内设置国外上架,以及收费情况
10..#if DEBUG#endif 调试判断,打印输出宏定义
11.白名单
* 国际化 "REMIND"="提示"; 使用时 str = NSLocalizedString(@"REMIND", nil) http://my.oschina.net/leejan97/blog/284372
* 单元测试 //www.greatytc.com/p/8bbec078cabe 单元测试介绍
* - (void)didReceiveMemoryWarning 考虑是否创建一个基类,把类的通用特性写好
15. iOS 10 开发适配系列 之 相机相册权限Crash问题 调用系统功能添加权限(蓝牙,电话簿) 有不闪退的在打包时也可能失败
* 字体库,需要用到的字体格式, 专门创建一个字体类
17.修改状态栏的名称 需要设置plist文件 View controller-based status bar appearance
18.启动页 需要图片比例
//www.greatytc.com/p/4f083431d5d5
http://www.cnblogs.com/BK-12345/p/5218229.html
19.打包的过程中上传ipa文件的时候有双击不能点击导入,点击导入会获取不到文件
20.调用系统相机相册显示英文在 Info.plist 中添加Localized resources can be mixed localization native development region
21.weakself strongself 的使用(用新的方法)
22.所有网络请求的接口字符串单独定义一个宏
23. 字号颜色创建宏,提前讲好大标题小标题字号
描述文件保存地址
~/Library/MobileDevice/Provisioning Profiles
测试用例
1.编号 2.场景 3.描述/操作 4.期望结果 5.真实结果
【链接】officeformac2011简体中文免费完整版
http://www.newasp.net/soft/110888.html
Charles 抓包工具 可使用代理服务器抓post 不支持Socket 支持https
cmd - ipconfig命令查看自己电脑的ip地址
+ UIActionSheet
+ UIActivityIndicatorView
+ UIAlertView
+ UIButton
+ UIDatePicker
+ UIImageView
+ UIPageControl
+ UIPickerView
+ UIProgressView
+ UISegmentedControl
+ UISlider
+ UIStepper
+ UISwitch
+ UITextField
+ UITextView
+ UIWebView
+ UISearchBar
+ UIToolbar
NSPredicate 用于描述对象持久性存储在内存中的对象过滤http://www.cocoachina.com/ios/20160111/14926.html
iOS剪切板 UIPasteboard
主流第三方
****CocoaLumberjack iOS开源项目之日志框架CocoaLumberjack
AsyncDisplayKit asdk facebook开源的高性能布局框架
*****FMDB 数据库的封装
*****Masonry 自适应布局
*****MBprogressHUD 加载框,进度条
Reachability 网络判断
瀑布流横向与纵向
PLCollectionViewWaterfallLayout-master
CHTCollectionViewWaterfallLayout-develop
Web view处理
RxWebViewController 类似微信的web导航效果
NJKWebviewProgress
TOWebViewController 跳到新的web不用离开当前的界面
WebViewJavascriptBridge JS与OC混编
导航栏
JZNavigationExtension 左滑返回,改变导航栏透明度
LTNavigationBar
*****FDFullscreenPopGesture 左滑返回手势
CWStatusBarNotification 状态栏通知
JDStatusBarNotification 网易状态栏通知
WMPageController-master 新闻类首页滑动查看
CRGradientNavigationBar 可以设置颜色渐变的导航栏
侧边栏
LeftSlide-master 仿qq左侧边栏(将mainController中的Navigation去掉,不然会影响其他navi的设置)
*****RESideMenu 两边抽屉最火的
WWSideslipViewController-master 双侧边栏
SWRevealViewController-master
tabbar
RDVTabBarController 自定义tabbar
FancyTabBar 点击按钮出来多个按钮动画特效
CYLTabBarController 很好用tabbar,可以自定义多种样式
字典模型互转框架
*****MJExtension
*****jsonModel
Mantle
YYKit 图文混排各种框架
BlocksKit 快速编码
报表
*****PNChart 数据报表 环形图 饼图 柱状图
SHLineGraphView 专业的数据报表
FSLineChart 另一种风格的数据报表
Charts 也是一个数据报表,7.3运行
EChars iOS-Echarts 百度的特别强大图标,数据统计,地图分布
MLMProgressCollection 仪表盘
加密
AESCrypt AES加密
*****GTMBase64 各种加密
CocoaSecurity md5 base64 加密封装
动画
*****Shimmer-master FB出的闪亮效果,常用于加载
pop FB动画
TBIconTransitionKit 点击按钮动画变化效果 可定制
VCTransitionsLibrary 自定义iOS交互式转场动画的库 模态,tabor等
Canvas 图片显示动画
XTAnimations 烟花跑马灯
***** 菜单弹出动画
数据显示
UICountingLabel 数字快速变化的label
*****TTTAttributedLabel 富文本
DTCoreText 富文本处理 (HTML处理)
MarqueeLabel 跑马灯
DZNEmptyDataSet 当数据为空时显示界面
waver 根据声音大小显示振幅表
SlackTextViewController 输入框自增长文本域。手势识别,自动填充,多媒体粘贴(有swift版)
Toast 提示框
视图
FXBlurView 添加毛玻璃效果的view
RCHGestureGuide 手势提示
TOCropViewController 裁剪图片
轮播器
SDCycleScrollView 图片轮播器
XLPhotoBrowser 相册浏览 图片轮播器
*****iCarousel 类似网易云课堂顶部轮播
TinderSimpleSwipeCards 探探首页滑动效果
MDCSwipeToChoose 探探翻牌子
*****SWTableViewCell 左右滑动并且脱出好多按钮的tableviewcell
*****MGSwipeTableCell 也是滑动
RACollectionViewReorderableTripletLayout 可拖拽的collectionView
UITableView-FDTemplateLayoutCell 自适应cell的高度
FDTemplateLayoutCell 自适应cell高度
UITableViewCell+HYBMasonryAutoCellHeight
DACircularProgressView
DDProgressView
RETableViewManager tableview管理
键盘自适应高度
TPKeyboardAvoiding 自动适配键盘高度
IQKeyboardManager] 键盘管理
UUChatTableView 聊天界面
MMPopupView alerter 提示框
WCAlertView 自定义颜色,可以加输入框
JMHoledView
TitlePagerView
音频视频
kxmovie 视频播放 直播流
ffmpeg 记录、转换数字音频、视频
wmplayer 视频播放器第三方
ijkplayer 基于FFmpeg的跨平台播放器
520Linkee 直播App 视频流采集、播放、美颜、礼物、点赞出心 融合了不少功能
STLBGVideo 登陆背景视频
刷新控件
SVPullToRefresh 常用的刷新加载控件(淘宝)
YiRefresh
ODRefreshControl 类似qq的刷新
EGOTableViewPullRefresh 网易
图片处理
TKImageView 用来裁剪照片
UIImage-Resize 用来缩放图片
uiimage-from-animated-gif 用来显示加载动画
GPUImage 图片滤镜
MWPhotoBrowser 图片选择器
IDMPhotoBrowser
TZImagePickerController 图片选择器,好用的
SCRecorder 相机操作
YQImageTool 图片裁剪旋转
TOCropViewController 裁剪图片
GPUImage 图片滤镜
BeautifyFace 快速的实现美颜功能 基于GPUImage
色彩 颜色渐变跑马灯
Wonderful
Chameleon 各种扁平化颜色框架
时间处理
PDTSimpleCalendar 日历
DateTools 日期的显示,以及时间的各种比较计算
FSCalendar 完全可定制的 iOS 日历库,兼容 Objective-C 和 Swift 。
搜索
PYSearch-master 搜索框 搜索记录
APP优化
DAAppsViewController 应用推广界面,填写合作appid即可
appirater-master 提示用户给app评分
iVersion 版本提示更新
JSPatch 热更新,修复上线app的bug
fespinner loading 网络请求各种动画加载效果
RHAddressBook-master 访问通讯录
Aspects runtime封装,给系统方法添加代码 http://tech.glowing.com/cn/method-swizzling-aop/
PermissionScope 提示系统许可
TAPromotee 推销app
IAPHelper 应用内购买 (使用时提前了解iap的坑)
XHLaunchAd 3.0 开屏广告https://github.com/CoderZhuXH/XHLaunchAd
github最热的
MagicalRecord core data的封装
JSQMessagesViewController 类似于苹果短信
Alcatraz 好用的插件管理工具,类似cocopod ,安装介绍(http://blog.csdn.net/sharpyl/article/details/50682139)
CocoaLumberjack 控制台输出颜色
SlackTextViewController 文字输入解决方案
FLEX 一个在应用程序的调试和探测工具为iOS版
ZipArchive 可用于压缩和解压缩文件
*****SSKeychain 支持对存储在钥匙串中密码、账户进行访问,
RegexKitLite 用来处理正则表达式
GTMNSString+HTML 谷歌开源的用于过滤HTML标签
CocoaAsyncSocket Socket 最好的封装
PonyDebugger 调试工具,远程调试iOS程序、查看试图层次、网络
CocoaLumberjack Log工具
FontAwesomeKit 轻松添加字体
FontBlaster 在app里加载自定义字体更简单。
OpenUDID 生成设备唯一标识符 (不能用了)
SAMKeychain 存取钥匙串
Valet 存取钥匙串
IGListKit 快速灵活列表的数据驱动型的 UICollectionView 框架
STAlertView 第三方的弹出输入框
photokit 获取图片信息
firebase analytics 谷歌的用户统计
DZNEmptyDataset 显示空数据时的界面
DeviceKit 获取设备信息和电池电量
Quick 测试框架
GDPerformanceView 测试使用显示内存等信息
Chameleon iOS 颜色框架软件。
Ensembles 设备之间移动文件支持swift
AsyncDisplayKit ADK facebook开源的异步UI SDK
DAKeyboardControl 输入框里面加view
charles 抓包工具
非知名但实用
YZPullDownMenuDemo 快速继承搜索界面下拉菜单
MYDropMenu 上拉下拉菜单
MCLeftSilder 侧滑栏,还有黑夜效果,以及程序启动时的广告页
FJMongoliaView 首次下载提示的蒙层
UniversalProject app创建的框架以及常用的功能
BAPickView-master 日期地址选择器
EBForeNotification 在 App 处于前台时展示跟系统完全一样的推送弹窗和声音。获取推送内容,并处理点击事件
iOSInterviewQuestions iOS面试题
iOS-Source-Code-Analyze iOS开源框架解析
UniversalProject-master 一个好的app框架
推送相关
https://github.com/pinping/IOS-The-tutorial
https://github.com/pinping/IOS-The-tutorial/blob/master/iOS推送总结.md
好多用法
https://hit-alibaba.github.io/interview/
swift
Swift30Projects. 30个swift开源
http://www.cocoachina.com/swift/20150126/11016.html 开源项目精选
SnapKit
Snap、 自适应布局
Kingfisher、加载图片
DominantColor 提取图片主色
gifu gif显示类库
Fabric
Alamofire:著名的AFNetworking网络基础库Swift版
SwiftyJSON:最为开发者认可的JSON解析类
kingfisher 异步下载缓存图片
SQLite.swift:简单、轻量,使用上最SQL的SQLite封装库
realm 移动数据库
SugarRecord:基于CoreData与REALM的好用封装
SweetAlert:带动画效果弹窗封装类
RAMAnimatedTabBarController:
PNChart-Swift:带动画效果的图表控件库
Cartography:用代码解决麻烦的AutoLayout
LTMorphingLabel:各种文字动画效果
SwiftSafe 并发情况下的数据存取
SVProgressHUD
FDFullscreenPopGesture
PathKit 路径管理类
LocationManager 地理位置管理封装库
XCGLogger 日志管理类库
Siren 提示应用更新
CryptoSwift 加密库 MD5 sha1,sha224,sha256(跟md5加密类似)
PeekPop 可以很方便地使用3D touch来预览内容。
PromiseKit 异步编程类库
EZSwiftExtensions 对Swift标准库, Foundation, UIKit 提供了很多高级扩展函数
PermissionScope 权限管理库 提供申请权限授权操作
IQKeyboardManagerSwift 键盘自适应高度
ZZImagePicker 调用相机相册
FileKit 文件管理框架
Swift-CircleMenu 圆盘式菜单 建行
SDiffuseMenu 菜单弹射出来的动画
Swift30Projects swift学习项目
Hero 过渡动画库
He的wig 发送email
RandomKit 随机数生成
Quick 测试框架
RxSwift swift 的reactive
GDPerformanceView-Swift 实时展示 内存 fps app版本的view
swiftStoreKit 轻量级的app内购框架
Timepiece 日期处理
CryptoSwift 加密相关的方法
FSCalendar 自定义的日历库
ImageViewer 图片浏览器
ZYThumbnailTableView 可展开型tableview
SSASideMenu 侧滑
工具
face++ 人脸识别
依图
cell自适应高度新方法http://www.ifun.cc/blog/2014/02/21/dong-tai-ji-suan-uitableviewcellgao-du-xiang-jie/
http://blog.sunnyxx.com/2015/05/17/cell-height-calculation/
新建一个工程 1.https 2. -objc 3. bit code 4.是否支持ipad(支持的话要加图片logo)
//www.greatytc.com/p/d553096914ff
Contants 常量 (同Config 配置文件) 存放宏以及.h等全局文件
1. UIConstant
2.APIConstant 网址首字母 webview url 网址内容的加密
3.SecretContant aped key 加密内容
4.PrefixHeader.pch 常用的类的头文件,会带来编译问题
Utils(XXKit) (同Tools) 实用工具栏 包括底层的库的封装,例如音频、数据库、通用的视图、category, NetworkEngine,DataBase,CommonView以及工具类、网络引擎等 类目 数据库 push um等 开源中国中创建了个Utils类类似于reuseablecontroller
Class 类 存放Monkey项目的主要业务层代码,包括各个功能模块,以及各个功能模块通用的组件
1.Module 模块 主要的业务层代码 比如:我的 发现 社区 资讯 MVC都写在此
2.Common 共同 包括业务层各个功能模块通用的组件,以及一些基类(base)组件,通用(Global)类,通用的Model和View等 如 Base Global AppGeneral VC Views Models
Resources 资源 css html js等代码 字体库 城市列表 图片 plist文件等
Vendor 供应商 存放第三方库
需要熟练掌握的
AFNetWorking
SDwebimage工作方式,方法
响应者链条
runtime runloop
生命周期
内存 __block __weak
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
TagCollectionViewFlowLayout *layout = (TagCollectionViewFlowLayout *)collectionView.collectionViewLayout;
CGSize maxSize = CGSizeMake(collectionView.frame.size.width - layout.sectionInset.left - layout.sectionInset.right, layout.itemSize.height);
CGRect frame = [self.tags[indexPath.item] boundingRectWithSize:maxSize options:NSStringDrawingUsesFontLeading|NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName: [UIFont systemFontOfSize:14.0f]} context:nil];
return CGSizeMake(frame.size.width + 20.0f, layout.itemSize.height);
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
TagCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:reuseIdentifier forIndexPath:indexPath];
cell.backgroundColor = self.tagBackgroundColor;
cell.layer.borderColor = self.tagStrokeColor.CGColor;
cell.layer.cornerRadius = self.tagCornerRadius;
cell.titleLabel.text = self.tags[indexPath.item];
cell.titleLabel.textColor = self.tagTextColor;
if ([self.selectedTags containsObject:self.tags[indexPath.item]]) {
cell.backgroundColor = self.tagSelectedBackgroundColor;
}
return cell;
}
+ (UIImage *)imageWithColor:(UIColor *)color {
//描述一个矩形
CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
//开启图形上下文
UIGraphicsBeginImageContextWithOptions(rect.size, NO, 0);
//获得图形上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
//使用color演示填充上下文
CGContextSetFillColorWithColor(ctx, [color CGColor]);
//渲染上下文
CGContextFillRect(ctx, rect);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
//关闭图形上下文
UIGraphicsEndImageContext();
return image;
}