2015-07-18 11:57:06 BinShaosir 阅读数 1433
  • 微信h5支付开发-php开发微信h5支付demo

    会员免费看,http://edu.csdn.net/lecturer/842右侧可办理会员卡。微信h5支付开发是子恒老师《子恒说微信开发》视频教程的第17部。详细讲解了微信H5支付开发,内容包含开通H5支付,实现微信h5支付,订单查询,关闭订单等等。欢迎反馈,微信号:QQ68183131

    8009 人正在学习 去看看 秦子恒


技术交流群:511040024

[博主app上线啦,快点此来围观吧]



目录


iOS开发之CollectionViewFlowLayout实现LOL皮肤选择动画(new)


Bison眼中的iOS开发多线程是这样的(二)(new)


iOS开发仿简书、淘宝等等App的View弹出效果(new)


iOS开发黑魔法KVO的奥秘(new)


iOS开发仿美国国家地理App的一个炫酷的动画(new)


iOS实现自定义炫酷的弹出视图(popView)


iOS开发之事件传递响应链


Bison眼中的iOS开发多线程是这样的(一)


黑魔法runtime基础之属性与变量


详解持久化Core Data框架的原理以及使用


Github源码推荐:(01.04):iOS开发蓝牙,启动动画,自定义Tabbar


仿window阿里旺旺登陆界面,打印机吐纸动画效果


Biosn收集的Git常见的错误解决方式


Bison教你怎么让百度收录你的Github空间博客


Bison教你1分钟集成百度移动SSP启动广告


Github源码推荐:(12.25):手势解锁,个人SDK集成,无限循环图片轮播


iOS开发之OCR光学识别储蓄卡以及信用卡(new)


技术博客不仅仅只是一个网站,还可以这样玩........(new)


Mac OS开发系列之NSImageView(new)


Swift2.0后Alamofire的使用方法(new


Bison教你1分钟集成3D无限翻转的Banner


iOS9新特性之实现3D Touch就是So easy(更新Swift版)


iOS开发之多国语言国际化经验浅谈


一点一滴慢慢的揭开XMPP的神秘面纱


Swift纯代码走进UICollectionView           


Swift超炫的个人界面依旧如此简单


iOS仿“礼物说”的个人界面,一分钟集成不是梦!


iOS开发禁止使用系统自带手势滑动返回功能


Swift初探之纯代码写tabBar


iOS开发之检测设备锁屏


iOS开发动画之绕View旋转的View


UIWebView的使用与总结


iOS开发如何实现长微博的功能


iOS使用Google地图Api创建的地图显示标注及轨迹回放


iOS开发获取通讯录并发短信给联系人


iOS开发类似折800功能中的一个小Demo


iOS开发打包静态库.a文件


iOS开发2015年最新iOS内购全套图文教程


iOS被拒解决方案--持续更新


CocoaPods安装及使用


iOS开发第三方登录没安装对应的APP时,图标禁止点击且颜色变灰


iOS开发自动计算tabview中label的高度

[博主app上线啦,快点此来围观吧]

2018-09-06 16:59:45 u014616159 阅读数 178
  • 微信h5支付开发-php开发微信h5支付demo

    会员免费看,http://edu.csdn.net/lecturer/842右侧可办理会员卡。微信h5支付开发是子恒老师《子恒说微信开发》视频教程的第17部。详细讲解了微信H5支付开发,内容包含开通H5支付,实现微信h5支付,订单查询,关闭订单等等。欢迎反馈,微信号:QQ68183131

    8009 人正在学习 去看看 秦子恒

前言:iOS开发之路笔记,iOS知识点总结,在ios开发路上查阅的资料,都是开发时候一点一点积累的笔记,希望能帮到大家,喜欢的记得点个❤️哦。

启动页相关

iOS启动时如何添加引导页面 小demo - 于丹丹 no zuo no die no life - 博客频道 - CSDN.NET

http://blog.csdn.net/yudandan10/article/details/42009511

ios 设置启动界面全屏_百度经验

http://jingyan.baidu.com/article/454316aba9c540f7a7c03a0c.html

iOS LaunchScreen设置启动图片 启动页停留时间 - iPhone手机开发技术文章 - 红黑联盟

http://www.2cto.com/kf/201506/407017.html

布局相关

.IOS中xcode6以上控件布局适配,两控件的距离,控件占百分比_IThao123 - IT行业第一站

http://www.ithao123.cn/content-8121186.html

Storyboard类介绍 - stephen830 - ITeye技术网站

http://stephen830.iteye.com/blog/1694061

StoryBoard 和 Xib 开发时,一些小技巧,希望可以帮到大家

http://www.360doc.com/content/14/1223/17/20925212_435219124.shtml

iOS8开发~UI布局(三)深入理解autolayout - 果木果木喏...皮斯特列 - 博客频道 - CSDN.NET

http://blog.csdn.net/liangliang103377/article/details/40082271

iOS 9 适配系列教程_苹果快讯_麦客家园

http://www.kmapple.com/news/news/9704.html

iOS布局和屏幕适配的一点总结 - 女儿3岁了还是要继续钻研技术 - ITeye技术网站

http://kyfxbl.iteye.com/blog/2212908

iPhone屏幕尺寸、分辨率及适配 - 曾梦想仗剑走天涯 - 博客频道 - CSDN.NET

http://blog.csdn.net/phunxm/article/details/42174937

iOS 9 学习系列:Storyboard References - CocoaChina 苹果开发中文站 - 最热的iPhone开发社区 最热的苹果开发社区 最热的iPad开发社区

http://www.cocoachina.com/ios/20150922/13474.html

iPhone/iOS开启个人热点的纵向适配小结 - IOS - 次元立方网 - 电脑知识与技术互动交流平台

http://www.it165.net/pro/html/201501/32614.html

iPhone/iOS开启个人热点的纵向适配小结 - 曾梦想仗剑走天涯 - 博客频道 - CSDN.NET

http://blog.csdn.net/phunxm/article/details/42967035

开始iOS 7中自动布局教程(一) - 谁家的阿毛的个人空间 - 开源中国社区

http://my.oschina.net/u/1405818/blog/261583

有了Auto Layout,为什么你还是害怕写UITabelView的自适应布局? - CocoaChina 苹果开发中文站 - 最热的iPhone开发社区 最热的苹果开发社区 最热的iPad开发社区

http://www.cocoachina.com/ios/20151009/13640.html

iOS开发19:Storyboard的简单使用 - 双子座的个人页面 - 开源中国社区

http://my.oschina.net/plumsoft/blog/53886

iOS 8 Auto Layout界面自动布局系列2-使用Xcode的Interface Builder添加布局约束 - Puzhi的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/pucker/article/details/41843511

iOS 9配置相关

ChenYilong/iOS9AdaptationTips

https://github.com/ChenYilong/iOS9AdaptationTips/

整理iOS9适配中出现的坑(图文) - 董铂然 - 博客园

http://www.cnblogs.com/dsxniubility/p/4821184.html

Xcode相关

解决XCode6.4 上无法安装 Alcatraz PackageManager - 小流星子学习博客 - 博客频道 - CSDN.NET

http://blog.csdn.net/xiaoliuxingzi/article/details/46889429

7.解决XCode6.4 上无法安装 Alcatraz PackageManager - 小流星子学习博客 - 博客频道 - CSDN.NET

http://blog.csdn.net/xiaoliuxingzi/article/details/46889429

Xcode6.4 插件管理工具Alcatraz安装和我用到的插件

http://www.mamicode.com/info-detail-976060.html

iOS开发中遇到的一些问题及解决方案 - iPhone手机开发技术文章 - 红黑联盟

http://www.2cto.com/kf/201506/411277.html

彻底解决ios项目中 "_OBJC_CLASS_$_XXXService", referenced from: 的类似问题 - iPhone手机开发技术文章 - 红黑联盟

http://www.2cto.com/kf/201506/406460.html

IOS引用三方framewrok的头文件出现'xxxxx/xxxx.h' file not found问题解决方法_東東_新浪博客

http://blog.sina.com.cn/s/blog_916e0cff0102vath.html

xcode 导入七牛 objc-sdk - 七牛云存储

http://kb.qiniu.com/5t06228o

升级IOS 9 和 XCode 7 引起的问题

http://www.mamicode.com/info-detail-1054546.html

: CGContextRestoreGState

http://www.bubuko.com/infodetail-1108405.html

Xcode7 真机调试步骤分享 - 简书

http://www.jianshu.com/p/226fcba86132

iOS中Bitcode的介绍及配置 - 简书

http://www.jianshu.com/p/3e1b4e2d06c6

Xcode添加静态库以及编译选项配置常见问题 - Quains - 博客园

http://www.cnblogs.com/Quains/archive/2013/08/22/3276425.html

ios - 相对路径 绝对路径 目录结构 - 程序猿-樱木花道的个人页面 - 开源中国社区

http://my.oschina.net/liuchuanfeng/blog/388338

iOS 平台 Cocos2d-x 项目接入新浪微博 SDK 的坑 - leenjewel Blog

http://leenjewel.github.io/blog/2015/01/08/ios-ping-tai-cocos2d-x-xiang-mu-jie-ru-xin-lang-wei-bo-sdk-de-keng/

iOS 9界面适配利器:详解Xcode 7的新特性UIStackView-CSDN.NET

http://www.csdn.net/article/2015-08-04/2825372/3

XCode环境变量及路径设置 - Recording... - 博客频道 - CSDN.NET

http://blog.csdn.net/freedom2028/article/details/8658819

怎么去掉Xcode工程中的某种类型的警告 - CocoaChina 苹果开发中文站 - 最热的iPhone开发社区 最热的苹果开发社区 最热的iPad开发社区

http://www.cocoachina.com/ios/20141218/10678.html

5个Xcode开发调试技巧 - CocoaChina 苹果开发中文站 - 最热的iPhone开发社区 最热的苹果开发社区 最热的iPad开发社区

http://www.cocoachina.com/ios/20140526/8555.html

苹果Xcode帮助文档阅读指南 - OurCoders (我们程序员)

http://ourcoders.com/thread/show/117/

关于xcode6中帮助文档(Documentation and API Reference)的位置以及自行安装帮助文档的方法 - 简书

http://www.jianshu.com/p/4387a6413ab9

获取普通用户 iOS 设备上的 Crash Log 的方法 - 移动开发 - ITeye技术网站

http://janedoneway.iteye.com/blog/1562837

ios iphone编程中使用封装的NSLog来打印调试信息 - 天已界 - 博客园

http://www.cnblogs.com/zhangdadi/articles/2775374.html

Xcode7中你一定不知道的调试神技 - 51CTO.COM

http://mobile.51cto.com/iphone-494376.htm

高效使用你的Xcode - CocoaChina_让移动开发更简单

http://www.cocoachina.com/ios/20140731/9284.html

viewWillAppear相关

ios - -(void)viewWillAppear:(BOOL)animated{ } 方法不调用。 - SegmentFault

http://segmentfault.com/q/1010000002611728

viewWillAppear在什么时候才会被调用?? | iOS开发 - CocoaChina CocoaChina_让移动开发更简单

http://www.cocoachina.com/bbs/read.php?tid-10569-keyword-viewWillAppear.html

关于iphone开发中的@property和@synthesize的一些见解 - 魏先宇的程序人生 - 博客频道 - CSDN.NET

http://blog.csdn.net/likendsl/article/details/7345485

为何ViewController释放后不走dealloc - 昀离丶的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/wq5201314o/article/details/43309575

UIView相关

使用bringSubviewToFront实现视图切换--李开涌的博客

http://www.beauty-soft.net/blog/ceiba/Ios/2013-03-02/60.html

ios tintColor 与backgroundColor区别研究 - 鸿网互联[68IDC.CN]

http://www.68idc.cn/help/buildlang/ask/20150124188072.html

iOS开发系列之常用自定义控件开发集—自定义状态栏消息提示控件开发 - iPhone手机开发技术文章 - 红黑联盟

http://www.2cto.com/kf/201504/392682.html

iOS疯狂详解之自定义状态栏代码解析_IOS开发_三联

http://www.3lian.com/edu/2014/12-12/184047.html

UIView的setNeedsLayout, layoutIfNeeded 和 layoutSubviews 方法之间的关系解释 - SpeedBoy007的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/meegomeego/article/details/39890385

ios坐标系转换-IOS-第七城市

http://www.th7.cn/Program/IOS/201301/123257.shtml

iOS开发系列--Objective-C之协议、代码块、分类 - KenshinCui - 博客园

http://www.cnblogs.com/kenshincui/p/3869639.html

Phone重绘机制drawRect(转) - 幻影交叠 - ITeye技术网站

http://lizi07.iteye.com/blog/1630910/

UIView的drawRect: 和 - (void)setNeedsDisplay 的一些理解 - LVXIANGAN的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/lvxiangan/article/details/23618553

iOS中frame、bound、center以及transform属性 - EvanYang的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/shancheng966/article/details/45290287

iOS / iPhone / iPad 实现滑动切换视图的类Tab页面布局代码 ICViewPager - 滚动视图(ScrollView)开源代码 - Code4App.com

http://code4app.com/ios/ICViewPager/5243b17d6803fa3710000001

iOS开发UI篇—九宫格坐标计算 - 文顶顶 - 博客园

http://www.cnblogs.com/wendingding/p/3748732.html

iOS 各种坐标系对比 - SpeedBoy007的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/meegomeego/article/details/8480458

iOS中的触摸事件和手势处理 - 傲风凌寒的个人空间 - 开源中国社区

http://my.oschina.net/aofe/blog/268749

viewWithTag获取subview规则详解 - thanklife的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/thanklife/article/details/45887013

ios - UITextView 光标起始位置为什么在输入框的最下面一行 - SegmentFault

http://segmentfault.com/q/1010000002957615

UIScrollerView上AutoLayout的总结 - tb_engineer的个人空间 - 开源中国社区

http://my.oschina.net/u/1581898/blog/536753

UIButton相关

IOS基础学习UIButton使用详解_IOS开发_三联

http://www.3lian.com/edu/2015/05-09/211554.html

iOS导航BarButtonItem文字或者图片与屏幕边界的间隔调整方法 - 标哥 - 博客频道 - CSDN.NET

http://blog.csdn.net/woaifen3344/article/details/24793087

自定义UIButton的title和image位置 - chenyong05314的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/chenyong05314/article/details/42143729

深度定制 UIButton 按钮 - ygm900 - 博客园

http://www.cnblogs.com/ygm900/archive/2013/05/28/3104169.html

设置UIButton的文字显示位置、字体的大小、字体的颜色 - 承影 - 博客频道 - CSDN.NET

http://blog.csdn.net/chengyingzhilian/article/details/8363855

UIImage相关

IOS高访微信聊天对话界面(sizeWithFont:constrainedToSize和stretchableImageWithLeftCapWidth的使用) - 苹果吧 - 博客园

http://www.cnblogs.com/ios8/p/ios-weixin.html

UIImage部分拉伸——stretchableImageWithLeftCapWidth的使用 - 其他综合 - 红黑联盟

http://www.2cto.com/kf/201507/419729.html

iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile? - Kikim的地盘 - 博客频道 - CSDN.NET

http://blog.csdn.net/dqjyong/article/details/26969355

iOS图片拉伸技巧 - M了个J - 博客频道 - CSDN.NET

http://blog.csdn.net/q199109106q/article/details/8615661

UITableView相关

设置UITableView Section、cell背景颜色 - my love - 博客频道 - CSDN.NET

http://blog.csdn.net/djl4104804/article/details/7615584

我要如何改变侧字母的颜色在一个索引的UITableView?-iphone,uitableview-CodeGo.net

http://codego.net/44612/

优化UITableViewCell高度计算的那些事 | sunnyxx的技术博客

http://blog.sunnyxx.com/2015/05/17/cell-height-calculation/

实现自适应高度的 UITableViewCell 或 UILabel - viviyachu - 博客园

http://www.cnblogs.com/viviyachu/archive/2012/03/07/2383363.html

UITableViewCell详解 - kingsley_cxz的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/kingsley_cxz/article/details/9151121

UITableView使用详解_风之语2018_新浪博客

http://blog.sina.com.cn/s/blog_9693f61a01016lv5.html

基于StoryBoard自动布局--Cell自适应高度 - 大丈夫 - 博客频道 - CSDN.NET

http://blog.csdn.net/tearscf/article/details/47137489

时间、日期相关

iOS 得到当前时间之前和之后N天的日期_StormerZ_新浪博客

http://blog.sina.com.cn/s/blog_6f72ff900102v2vq.html

ios开发——获取最近几天的日期及对应为一周中得星期几_IThao123 - IT行业第一站

http://www.ithao123.cn/content-2581588.html

NSData - 杜成东 - 博客园

http://www.cnblogs.com/duchengdong/archive/2012/03/29/2422997.html

用法总结:NSNumber、NSString、NSDate、NSCalendarDate、NSData(待续) - JerryVon

的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/jerryvon/article/details/7350567

http://www.2cto.com/kf/201407/315706.htmliOS时间那点事--NSDate - 张永彬 - 开源中国社区

http://my.oschina.net/yongbin45/blog/150114

[代码分享]判断日期是今天,昨天还是明天 | iOS开发讨论区

http://www.360doc.com/content/15/0429/21/20918780_466911895.shtml

ios日期处理 - passion_wu128的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/passion_wu128/article/details/41445259

时间与日期处理 - wayne23 - 博客园

http://www.cnblogs.com/wayne23/archive/2013/03/25/2981009.html

时区日期处理及定时 (NSDate,NSCalendar,NSTimer,NSTimeZone) -- IOS(实例) - Just Code - ITeye技术网站

http://justcoding.iteye.com/blog/1468089

NSDate常用代码范例 - KID - 博客园

http://www.cnblogs.com/chenfulai/archive/2011/05/31/2064311.html

初始化相关

initWithNibName、initWithCoder、awakeFromNib和 loadNibNamed详解 - 推酷

http://www.tuicool.com/articles/v2yQny

使用markman助力移动应用开发 - ios应用开发技术专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/openglnewbee/article/details/42195281

支付相关

iOS 开发之支付 - 简书

http://www.jianshu.com/p/ec31ccad3537

Ping++ SDK,引入iOS配置说明 - 简书

http://www.jianshu.com/p/52dd853841b0

百度地图相关

IOS开发百度地图API入门到精通-用点生成路线,导航,气泡响应

http://www.360doc.com/content/14/1026/20/19663521_420129758.shtml

iOS 判断并使用 百度地图 高德地图 导航(使用URI,不集成sdk) - yangtb2010的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/yangtb2010/article/details/41863661

iOS 调用地图导航 - Gabriel的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/gf771115/article/details/42554841

ios 百度地图 自定义 弹出泡泡 | iOS开发 - CocoaChina 开发讨论区 最热的iOS开发论坛| 最热的Mac开发论坛 | 最热的iPhone开发论坛 | 最热的iPad开发论坛

http://www.cocoachina.com/bbs/read.php?tid=145975

怎样更新自定义气泡里的内容,急!!! - iOS地图SDK - 百度LBS开放平台 - Powered by Discuz!

http://bbs.lbsyun.baidu.com/forum.php?mod=viewthread&tid=80822

百度地图怎么自定义弹出泡泡 | iOS开发 - CocoaChina 开发讨论区 最热的iOS开发论坛| 最热的Mac开发论坛 | 最热的iPhone开发论坛 | 最热的iPad开发论坛

http://www.cocoachina.com/bbs/read.php?tid=169704

ios百度地图-路径规划 - IOS夜未央 - 开源中国社区

http://my.oschina.net/panyong/blog/306558

iOS想同时获得当前经纬度和位置信息怎么做啊? - iOS地图SDK - 百度LBS开放平台 - Powered by Discuz!

http://bbs.lbsyun.baidu.com/forum.php?mod=viewthread&tid=6620

ios开发中如何调用苹果自带地图导航-IOS-第七城市

http://www.th7.cn/Program/IOS/201502/398327.shtml

应用内跳转到百度地图和苹果地图 - hengshujiyi的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/hengshujiyi/article/details/45560609

判断用户是否开启了定位功能 - Jacky Huang (标哥-iOS攻城狮) - 博客频道 - CSDN.NET

http://blog.csdn.net/woaifen3344/article/details/38942911

ios 检测定位服务 - huanghuanghbc的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/huanghuanghbc/article/details/9454653

动画效果相关

iOS 类似陌陌,网易,path个人属性界面的动画效果 -- 滑动scrollview时,随距离改变属性的动画原理! - 开源中国社区

http://www.oschina.net/code/snippet_1771722_44832

iOS开发笔记-根据frame大小动态调整fontSize的自适应文本及圆形进度条控件的实现

http://www.360doc.com/content/15/0402/10/9200790_460015475.shtml

Hit Testing | ios核心动画高级技巧

https://zsisme.gitbooks.io/ios-/content/chapter3/hit-testing.html

GitHub 上都有哪些值得关注学习的 iOS 开源项目? - 编程 - 知乎

http://www.zhihu.com/question/22914651

IOS UIKit框架类之视图动画和坐标系介绍 - u010328723的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/u010328723/article/details/39753891#comments

iOS开发系列--让你的应用“动”起来 - KenshinCui - 博客园

http://www.cnblogs.com/kenshincui/p/3972100.html

NSNotification通知相关

关于NSNotification通知的使用 - 浮华之人生的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/u013513053/article/details/49301107

iOS中的通知机制 - 傲风凌寒的个人空间 - 开源中国社区

http://my.oschina.net/aofe/blog/271058

iOS 中监听观察通知的几种方法 - lynjay的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/lynjay/article/details/7715668

ios 监听系统键盘的出现和消失

http://www.bubuko.com/infodetail-831537.html

IOS 如何监听一个BOOL值的是否改变? - SegmentFault

http://segmentfault.com/q/1010000002719039

ios程序中的通知机制_移动开发_程序员俱乐部

http://www.cxyclub.cn/n/46404/

【iOS】KVC 与 KVO - xn4545945 On the way - 博客频道 - CSDN.NET

http://blog.csdn.net/xn4545945/article/details/35991753

KVO - 魏先宇的程序人生 - 博客频道 - CSDN.NET

http://blog.csdn.net/likendsl/article/category/1337421

Swift相关

Swift专题页 - CocoaChina

http://www.cocoachina.com/special/swift/

初探swift语言的学习笔记九(OC与Swift混编) - fengsh998的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/fengsh998/article/details/34440159

swift与OC混编高级教程之混编框架的创建和调用_Hey_Pedestrian_新浪博客

http://blog.sina.com.cn/s/blog_877e9c3c0101sexl.html

将Objective-c代码迁移到Swift_Swift中文网

http://c.biancheng.net/cpp/html/2289.html

Swift语言Storyboard教程:第一部分 - CocoaChina 苹果开发中文站 - 最热的iPhone开发社区 最热的苹果开发社区 最热的iPad开发社区

http://www.cocoachina.com/swift/20150112/10892.html

WebView相关

WKWebView特性及使用

http://mp.weixin.qq.com/s?__biz=MzIzMzA4NjA5Mw==&mid=400327803&idx=1&sn=2a09fa94dd605a9f03bbc16f998e5717#rd

WebViewJavascriptBridge-Obj-C和JavaScript互通消息的桥梁 - CocoaChina_让移动开发更简单

http://www.cocoachina.com/ios/20150629/12248.htm

l

JavaScript 教程

http://www.w3school.com.cn/js/index.asp

iOS之在webView中引入本地html,image,js,css文件的方法 - CSDN博客

http://m.blog.csdn.net/blog/tyforfreedom/44620927

ios中webview的高级用法(二) - 甘超波 - 博客园

http://www.cnblogs.com/gcb999/p/3178728.html

完美方案——iOS的WebView自适应内容高度 - 推酷

http://www.tuicool.com/articles/FNrIbmi

iOS开发中WebView的使用 - 推酷

http://www.tuicool.com/articles/nAVJ7n

ios webview js 会不会调方法_百度知道

http://zhidao.baidu.com/link?url=2W9wrsczSPRBK8vgsrc2GFjHjQK9Dn7-FRBJN-wBWpgDqgfeM3ilHOwwYuM0AfhyTq60pbc0lpCpIYxbEus1Drnb1mYVBa_KCKZc9LSMEs7

iOS UWebView详解 - 程序园

http://www.kwstu.com/ArticleView/guandebao_20139618222689

iOS的webView如何实现html的离线缓存-CSDN论坛-CSDN.NET-中国最大的IT技术社区

http://bbs.csdn.net/topics/390831054

UIWebView内存占用过高、崩溃、内存溢出 - are1的个人页面 - 开源中国社区

http://my.oschina.net/are1OfBlog/blog/387695?p={{totalPage}}

如何获取UIWebview加载内容的标题 | iOS开发 - CocoaChina CocoaChina_让移动开发更简单

http://www.cocoachina.com/bbs/read.php?tid=26588

去掉UIWebView底部的黑条 - Bannings的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/zhangao0086/article/details/42425311

富文本相关

iOS之富文本 - qianglong - 开源中国社区

http://my.oschina.net/qianglong/blog/358233

iOS富文本(三)深入使用Text Kit - GGGHub的博客 - 博客频道 - CSDN.NET

http://blog.csdn.net/ggghub/article/details/50154599

iOS- 详解文本属性Attributes-IOS-第七城市

http://www.th7.cn/Program/IOS/201403/180653.shtml

画图相关CAShapeLayer - yongyinmg的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/yongyinmg/article/details/38755955

CATextlayer,UIlable NSTextView_殷昭_新浪博客

http://blog.sina.com.cn/s/blog_66131494010169h5.html

OC学习笔记共享 | iOS开发 - CocoaChina CocoaChina_让移动开发更简单

http://www.cocoachina.com/bbs/read.php?tid=222100

C/C++ struct位结构(位域) - linyawen - 博客园

http://www.cnblogs.com/linyawen/archive/2012/04/20/2458997.html

iOS: 使用CGContextRef,CGPath和UIBezierPath来绘画 | Mgen

https://www.mgenware.com/blog/?p=493

iOS UIBezierPath类 介绍 - 不积跬步 无以至千里 不积小流 无以成江海 - ITeye技术网站

http://justsee.iteye.com/blog/1972853

iOS绘图教程 - CocoaChina 苹果开发中文站 - 最热的iPhone开发社区 最热的苹果开发社区 最热的iPad开发社区

http://www.cocoachina.com/industry/20140115/7703.html

IOS绘图详解 - Struggle的日志 - 网易博客

http://blog.163.com/wkyuyang_001/blog/static/10802122820133190545227/

Block相关

iOS 利用Block实现链式编程_IThao123 - IT行业第一站

http://www.ithao123.cn/content-1780874.html

block一点也不神秘————如何利用block进行回调 - 墨半成霜的博客 - 博客频道 - CSDN.NET

http://blog.csdn.net/mobanchengshuang/article/details/11751671

Block的引用循环问题 (ARC & non-ARC) - wildfireli的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/wildfireli/article/details/22063001

Http相关

一些关于URL组成部分的指南 - 网络营销 - 亿邦动力网

http://www.ebrun.com/online_marketing/9811.html

TCP/IP、Http、Socket的区别 - lvmaker的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/lvmaker/article/details/8903972

IOS Socket使用大全 -将持续更新 - ch_soft的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/ch_soft/article/details/7369705/

URL的组成_一溪之水_新浪博客

http://blog.sina.com.cn/s/blog_4b5e83b40100msdj.html

JavaScript获取URL的各组成部分 -- 简明现代魔法

http://www.nowamagic.net/librarys/veda/detail/509

iOS学习笔记之HTTP协议,iOS缓存和CoreData - 简书

http://www.jianshu.com/p/1890670b7efc

检测网络相关

自动检测iOS网络并可跳转至设置界面设置网络 - 集结号 - 博客频道 - CSDN.NET

http://blog.csdn.net/enuola/article/details/8169302

[iOS]给UIWebView头尾插入自定义View « bang’s blog

http://blog.cnbang.net/tech/1784/

iOS程序实时监测网络连接的实现_Yooeee_新浪博客

http://blog.sina.com.cn/s/blog_6a4e2d490101eldr.html

UIDevice电量相关

IOS设备 UIDevice 获取操作系统 版本 电量 临近手机触发消息检测 (真机亲测可用) - iPhone手机开发技术文章 - 红黑联盟

http://www.2cto.com/kf/201404/290796.html

后台播放相关

锁屏播放,音乐进度更新,专辑,歌手名显示 | iOS开发 - CocoaChina CocoaChina_让移动开发更简单

http://www.cocoachina.com/bbs/read.php?tid=198271

iOS后台播放音乐 - yhawaii的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/yhawaii/article/details/7788340

IOS后台播放音乐 - SouthKing - ITeye技术网站

http://southking.iteye.com/blog/1429898

iOS程序进入后台后仍运行 - serinder的个人页面 - 开源中国社区

http://my.oschina.net/serinder/blog/223375

关于iOS后台问题( 一 )(ios后台刷新,后台定位,后台下载,真后台) - Neo_joke - 博客园

http://www.cnblogs.com/Neo-joke/p/4019677.html

IOS成长之路-使用系统默认声音、震动 - - 博客频道 - CSDN.NET

http://blog.csdn.net/like7xiaoben/article/details/9001806

ios开发小技巧之提示音播放与震动-IOS-第七城市

http://www.th7.cn/Program/IOS/201401/168214.shtml

iOS 播放音频的几种方法_一个小圈儿_新浪博客

http://blog.sina.com.cn/s/blog_a843a8850101k0d5.html

iOS-系统声音列表及调用 - piziliweiguang的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/piziliweiguang/article/details/9062031

倒计时实现相关

ios开发之倒计时实现的两种方法 - KylinBL的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/kylinbl/article/details/8972261

宏定义相关

#ifdef,#else,#endif,#if用法详解(转载) - STM32/STM8技术论坛 - 中国电子技术论坛 - 最好最受欢迎电子论坛!

http://bbs.elecfans.com/forum.php?mod=viewthread&tid=461052&extra=

iOS 方便的宏定义 - songbai - 推酷

http://www.tuicool.com/articles/zQjmqer

开发者账号相关

IOS公司开发者账号申请详细教程_追逐梦想_新浪博客

http://blog.sina.com.cn/s/blog_4cd8dd130102v3xv.html

苹果开发者账号之DUNS查询与申请

http://www.bubuko.com/infodetail-932367.html

Xcode 6 打包ipa文件 - 破空的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/goodai007/article/details/46380277

App Store上传相关

【解决方法】使用iTunes向设备安装ipa - 步行者 - 博客频道 - CSDN.NET

http://blog.csdn.net/chen_gp_x/article/details/49620021

iOS9下App Store新应用提审攻略 - CocoaChina_让移动开发更简单

http://www.cocoachina.com/appstore/20151028/13942.html

IOS8+Appstore应用上线流程_百度经验

http://jingyan.baidu.com/article/cb5d6105ea9280005d2fe053.html?st=2&os=0&bd_page_type=1&net_type=2

10个大坑,当你产品上架AppStore会遇到-鸟哥笔记

http://www.niaogebiji.com/article-6807-1.html

iOS应用性能调优的25个建议和技巧 - 博客 - 伯乐在线

http://blog.jobbole.com/37984/?replytocom=12761

iOS打包app发给测试人员测试 - zz_mm的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/zz_mm/article/details/44677789

XCode7打包上传报错 - LVXIANGAN的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/lvxiangan/article/details/49701591

iOS DSYMs 的作用 - MR_LP的博客 - 博客频道 - CSDN.NET

http://blog.csdn.net/mr_lp/article/details/50144971

iOS9项目打包上线(个人记录,2015年11月11日) - MR_LP的博客 - 博客频道 - CSDN.NET

http://blog.csdn.net/mr_lp/article/details/49784191

苹果加急审核详细步骤 - iOS悠悠Bug记 - 51CTO技术博客

http://ios2013yoyo.blog.51cto.com/6260005/1387872

iOS开发之内购相关

iOS开发之内购-AppStore | Yi'mouleng-即便世界与我为敌,只要心还透明,就能折射希望。

http://yimouleng.com/2015/12/17/ios-AppStore/

iOS App提交指南-协议、税务和银行业务_18183产业频道

http://chanye.18183.com/201503/280100.html

runtime相关

Objective C运行时(runtime)技术的几个要点总结 - thanklife的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/thanklife/article/details/45887511

iOS开发runtime:类与对象 - 开发者

http://chenru.cn/14388732518659.html

利用RunTime解决由NSTimer导致的内存泄漏 - GGGHub的博客 - 博客频道 - CSDN.NET

http://blog.csdn.net/ggghub/article/details/50240225

友盟相关

IOS友盟统计Bug追踪 - jwzhangjie的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/jwzhangjie/article/details/46042415

iOS之友盟错误统计解决 - CocoaChina_让移动开发更简单

http://www.cocoachina.com/ios/20150720/12627.html

友盟分享-IOS-第七城市

http://www.th7.cn/Program/IOS/201506/484627.shtml

ContainerView控件

【投稿】友好的 ContainerView & AutoLayout 资料推荐-CocoaChina-微头条(wtoutiao.com)

http://www.wtoutiao.com/p/Gab5mf.html

xcode6中如何对scrollview进行自动布局(autolayout) - yongyinmg的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/yongyinmg/article/details/41650733

终端terminal相关

mac 终端terminal 命令大全介绍 for Mac OS X|mac终端terminal,Mac命令,Mac终端设置,terminal命令|Mac官网|苹果笔记本软件下载,苹果电脑Mac软件下载|苹果 Mac软件下载|苹果Mac游戏下载|Mac OS X|苹果电脑Mac教程|苹果Mac常用软件|苹果Mac装机必备|最新破解|序列号|注册机|免激活|汉化|中文版|

http://www.7do.net/resources-11707-1-1.html

Mac OS X Terminal:终端使用教程_电脑教程学习网

http://computer.uoh.edu.cn/mac-os/mac-os-x-terminal-guide.html

字符串相关

IOS开发之----nil, NULL和NSNull_iOS-Coding_新浪博客

http://blog.sina.com.cn/s/blog_71715bf80101a9hw.html

IOS开发之旅-IOS常用数据结构NSArray、NSMutableArray、NSDictionary、NSMutableDi_百度文库

http://wenku.baidu.com/link?url=8DAEYjvgcBLPdVsAMHyy4v6kjLRZwpw-iBujc5Dg3XZ1smO2Y2BRjJj7dyDehcd-yViKN0UpfLYsMeZIuyRoSgYw1SMCD3ZPapEib0UJWgu

按照拼音对数组中的中文字符串排序的算法 - iOS开发 - 游戏开发者社区

http://bbs.9ria.com/thread-230144-1-1.html

IOS compare 字符串比较_東東_新浪博客

http://blog.sina.com.cn/s/blog_916e0cff0102uyz1.html

用NSClassFromString得到的class怎么调用那个类的类方法_百度知道

http://zhidao.baidu.com/link?url=pDwz3o4P12udtegJWoX1rpL50l08L9WM0AE5uL_CEvuKQxZS5wo-wdshRbmzvLGoUoG6UZ6cHuHuVURRMxzq7_z_jxYZP4O2pyPjvFAXvMS

NSObject的load和initialize方法 - CocoaChina_让移动开发更简单

http://www.cocoachina.com/ios/20150104/10826.html

缓存相关

使用NSURLProtocol实现UIWebView的离线缓存 | openQ

http://openq.cn/use-nsurlprotocol-uiwebview-offline-cache/

iOS开发-清理缓存功能的实现 - OPEN 开发经验库

http://www.open-open.com/lib/view/open1425625126743.html

玩转iOS开发 - 数据缓存 - iPhone手机开发技术文章 - 红黑联盟

http://www.2cto.com/kf/201506/406733.html

iOS系统缓存方面开发的相关基础_IOS_脚本之家

http://www.jb51.net/article/73573.htm

设计一个移动应用的本地缓存机制 - Cocoa And Dotnet. - 博客频道 - CSDN.NET

http://blog.csdn.net/zhuqilin0/article/details/6653532

检测SDWebImage有没有缓存图片 IOS 获取网络图片大小

http://www.mamicode.com/info-detail-471949.html

IOS缓存机制详解 - andyhe91的个人空间 - 开源中国社区

http://my.oschina.net/u/1049180/blog/405639

深入理解Objective-C:方法缓存-iOS大全-微头条(wtoutiao.com)

http://www.wtoutiao.com/p/v54Eop.html

NSURLConnection/AFN 缓存机制 - dickaccount的分享 - 博客频道 - CSDN.NET

http://blog.csdn.net/dickaccount/article/details/44201725

MKN与AFN对比学习

http://www.360doc.com/content/15/0731/15/20918780_488559596.shtml

iOS开发网络篇—数据缓存 - 文顶顶 - 博客园

http://www.cnblogs.com/wendingding/p/3950198.html

How Does Caching Work in AFNetworking? : AFImageCache & NSUrlCache Explained - Originate Developer Blog

http://blog.originate.com/blog/2014/02/20/afimagecache-vs-nsurlcache/

数据存储相关

iOS中使用SFHFKeychainUtils保存用户密码 - 爱程序网

http://www.aichengxu.com/view/37013

iOS开发 文件路径保存 - 简书

http://www.jianshu.com/p/1a9f84392691

14.ios之数据存取 - iPhone手机开发技术文章 - 红黑联盟

http://www.2cto.com/kf/201501/373155.html

iOS开发UI篇—ios应用数据存储方式(偏好设置) - 文顶顶 - 博客园

http://www.cnblogs.com/wendingding/p/3775178.html

下载相关

ios 开发中 把服务器文件夹中的图片下载到本地的demo_百度知道

http://zhidao.baidu.com/link?url=iBWzKBQ4BJqabE9VDV3MR2QwCAohBGo8gk7TISa7iyFyzM5YkewgvXFXZELiBg2WQBY2cKRNsUJruvL3vGlwcA4gIbJ2IXEnIg_LGgwsAvq

iOS开发 - NSURLSession实现断点续传下载 - iPhone手机开发技术文章 - 红黑联盟

http://www.2cto.com/kf/201505/399322.html

iOS文件的断点续传

http://www.360doc.com/content/14/1103/15/19663521_422187536.shtml

NSURLSession下载和断点续传 - 推酷

http://www.tuicool.com/articles/2AfA7nv

AFNetworking相关

IOS 图片上传处理 图片压缩 图片处理 - OPEN 开发经验库

http://www.open-open.com/lib/view/open1375933073921.html

ios 上传多张图片总结——IOS网络访问之使用AFNetworking - 爱程序网

http://www.aichengxu.com/view/55607

AFNetworking 文件上传Data,File图片,文件等上传 - Gabriel的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/gf771115/article/details/43970837

AFN清除图片缓存 以及菊花转圈 - Cheetah_yang - 博客园

http://www.cnblogs.com/Cheetah-yang/p/4649749.html

IOS----轻松掌握AFN网络顶级框架 - iPhone手机开发技术文章 - 红黑联盟

http://www.2cto.com/kf/201508/432423.html

视频播放相关

iOS学习:AVFoundation 视频流处理 - CocoaChina_让移动开发更简单

http://www.cocoachina.com/ios/20150528/11966.html

iOS的影片播放 MediaPlayer 和 AVPlayer - think12的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/think12/article/details/8549438

AVPlayer的基本使用 - Snaiper的个人空间 - 开源中国社区

http://my.oschina.net/u/1244672/blog/517187

NSTimer相关

NSTimer 使用 绝对超详细(1) - 俊友的技术小窝 - 博客频道 - CSDN.NET

http://blog.csdn.net/davidsph/article/details/7899483

iOS中定时器NSTimer使用 - Recording... - 博客频道 - CSDN.NET

http://blog.csdn.net/freedom2028/article/details/11579161

系统侧划返回手势相关

iOS “自定义返回按钮”与“系统侧滑”的组合使用 - - 博客频道 - CSDN.NET

http://blog.csdn.net/worldzhy/article/details/44851581

再谈iOS 7的手势滑动返回功能 - JasonLee的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/jasonblog/article/details/28282147

三方库返回左滑返回

pod 'FDFullscreenPopGesture'      全局左滑返回   

变量相关

IOS总结 静变量static、全局变量extern、局部变量、实例变量 - chengyakun11的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/chengyakun11/article/details/16942999

IOS 成员变量,全局变量,局部变量定义,static与extern的区别_harry_water_新浪博客

http://blog.sina.com.cn/s/blog_945590aa0102vnw4.html

svn相关

CornerStone上传静态库(.a文件)

http://www.bubuko.com/infodetail-802312.html

关于cornerstone check out 工作目录产生很多.svn文件的解决方法 - 小红帽囝的'学习笔记 - 博客频道 - CSDN.NET

http://blog.csdn.net/juhnxu/article/details/46502317

svn如何屏蔽/忽略不需要版本控制的文件(以UserInterfaceState.xcuserstate为例) - thanklife的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/thanklife/article/details/37932155

iOS:svn 忽略 xcworkspace、xcuserdata文件 - houseq 的专栏 - 博客频道 - CSDN.NET

http://blog.csdn.net/houseq/article/details/39556481

理解 XCode 中的 Git 版本控制 - 技术翻译 - 开源中国社区

http://www.oschina.net/translate/git-source-control-in-xcode?print

Xcode版本控制Git及在GitHub/Oschina提交项目 - CSDN博客

http://m.blog.csdn.net/blog/g1jun/25422953

学习git笔记,git,最强大的版本管理工具,没有之一。-guangmangdz-ChinaUnix博客

http://blog.chinaunix.net/uid-22547469-id-4561454.html

Application 相关

UIApplication初探 - 魏先宇的程序人生 - 博客频道 - CSDN.NET

http://blog.csdn.net/likendsl/article/details/7352935

iphone跬步之--NSBundle - 月光的尽头 - 博客园

http://www.cnblogs.com/xiaodao/archive/2012/07/03/2574703.html

其他

iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角) —核心网络

http://demo.netfoucs.com/jianglonghuang/article/details/44888133

资深程序员冒死揭开软件潜规则:无法维护的代码 - 推酷

http://www.tuicool.com/articles/vaYRre

<译>IOS 外设编程主题 - cokecoffe - 博客园

http://www.cnblogs.com/cokecoffe/archive/2013/03/14/2959516.html

iOS开发中最有用关键的代码合集(2) - 51CTO.COM

http://mobile.51cto.com/hot-410537_1.htm

Bmob移动后端云服务平台

http://www.bmob.cn/

iOS开发UI中懒加载的使用方法-布布扣-bubuko.com

http://www.bubuko.com/infodetail-779449.html

IOS开发之新浪微博OAuth2 - iPhone手机开发技术文章 - 红黑联盟

http://www.2cto.com/kf/201505/399327.html

不错学习资源 理解

http://openq.cn/page/3/

天狐的技术博客http://www.skyfox.org/page/

3编码、解码http://tool.chinaz.com/tools/unicode.aspx

iOS9项目打包上线(个人记录,2015年11月11日)http://blog.csdn.net/mr_lp/article/details/49784191mac

配置hosts https://github.com/stormtea123/Helm/

收索框https://github.com/shaojiankui/JKSearchBarRandomCodeView,实现IOS生成随机验证码. 验证码其实主要用来防止机器人恶意注册与登陆,基本用于web网页端https://github.com/shaojiankui/RandomCodeView有做直播或者想学习的同学,可以关注这篇文章:http://www.henishuo.com/live-play-resource-collections/

进度指示器http://www.oschina.net/p/sdprogressview/similar_projects?lang=0&sort=time&p=5

https://github.com/MSS0306/MSSCalendar 实用日历控件,优化了下代码,加了个弹框,star来吧

//修改的一个类似QQ的 添加图片和浏览图片的一个小Demohttp://www.code4app.com/ios/ShowPicture/aab46022-f7f8-11e5-9673-00163e0606f4

//招一个靠谱的ioshttps://github.com/ChenYilong/iOSInterviewQuestions

//微信朋友圈https://github.com/gsdios/SDAutoLayout 仿微信图片浏览https://github.com/MSS0306/MSSBrowse男人必看的10部电影http://blog.csdn.net/youoran/article/details/7108062vi/vim基本使用方法http:

YTKNetwork 使用基础教程http://blog.csdn.net/majiakun1/article/details/49075859YTKNetwork 使用高级教程http://blog.csdn.net/majiakun1/article/details/49075917//自定义 iOS 7的手势滑动返回功能http://blog.csdn.net/jasonblog/article/details/28282147http://blog.csdn.net/worldzhy/article/details/44851581http://benbeng.leanote.com/post/ReactiveCocoaTutorial-part1

这个是ReactiveCocoa的用法http://www.jianshu.com/p/87ef6720a096这个,,,是怎么安装

reactivecocoa的基本涵盖了所有问题HTTP 400 – 请求无效HTTP 401.1 – 未授权:登录失败HTTP 401.2 – 未授权:服务器配置问题导致登录失败HTTP 401.3 – ACL 禁止访问资源HTTP 401.4 – 未授权:授权被筛选器拒绝HTTP 401.5 – 未授权:ISAPI 或 CGI 授权失败HTTP 403 – 禁止访问HTTP 403 – 对 Internet 服务管理器 的访问仅限于 LocalhostHTTP 403.1 禁止访问:禁止可执行访问HTTP 403.2 – 禁止访问:禁止读访问HTTP 403.3 – 禁止访问:禁止写访问HTTP 403.4 – 禁止访问:要求 SSLHTTP 403.5 – 禁止访问:要求 SSL 128HTTP 403.6 – 禁止访问:IP 地址被拒绝HTTP 403.7 – 禁止访问:要求客户证书HTTP 403.8 – 禁止访问:禁止站点访问HTTP 403.9 – 禁止访问:连接的用户过多HTTP 403.10 – 禁止访问:配置无效HTTP 403.11 – 禁止访问:密码更改HTTP 403.12 – 禁止访问:映射器拒绝访问HTTP 403.13 – 禁止访问:客户证书已被吊销HTTP 403.15 – 禁止访问:客户访问许可过多HTTP 403.16 – 禁止访问:客户证书不可信或者无效HTTP 403.17 – 禁止访问:客户证书已经到期或者尚未生效 HTTP 404.1 -无法找到 Web 站点HTTP 404- 无法找到文件HTTP 405 – 资源被禁止HTTP 406 – 无法接受HTTP 407 – 要求代理身份验证HTTP 410 – 永远不可用HTTP 412 – 先决条件失败HTTP 414 – 请求 – URI 太长HTTP 500 – 内部服务器错误HTTP 500.100 – 内部服务器错误 – ASP 错误HTTP 500-11 服务器关闭HTTP 500-12 应用程序重新启动HTTP 500-13 – 服务器太忙HTTP 500-14 – 应用程序无效HTTP 500-15 – 不允许请求 global.asaError 501 – 未实现HTTP 502 – 网关错误

//好的博客地址kfaaron.github.io/atom.xmlkfaaron.github.io博客地址 | RSS地址----- | -----[OneV's Den](http://onevcat.com)

|[破船之家](http://beyondvincent.com) |[NSHipster](http://nshipster.cn) |[Limboy 无网不剩](http://blog.leezhong.com/)

|[唐巧的技术博客](http://blog.devtang.com) |[Lex Tang](http://lexrus.com/)

|[念茜的博客](http://nianxi.net) |[Xcode Dev](http://blog.xcodev.com) |[Ted's Homepage](http://wufawei.com/)|[txx's blog](http://blog.t-xx.me)

|[sunnyxx的技术博客](http://blog.sunnyxx.com/) |[Kevin Blog](http://zhowkev.in)

|[阿毛的蛋疼地](http://www.xiangwangfeng.com) |[亚庆的 Blog](http://billwang1990.github.io) |[Nonomori](http://nonomori.farbox.com)

|[言无不尽](http://tang3w.com) |[Wonderffee's Blog](http://wonderffee.github.io) |[I'm TualatriX](http://imtx.me) |[Cocoabit](http://blog.cocoabit.com) |[nixzhu on scriptogr.am](http://nixzhu.me)

|[不会开机的男孩](http://studentdeng.github.io) |[Nico](http://blog.inico.me) |[阿峰的技术窝窝](http://hufeng825.github.io)

|[answer_huang](http://answerhuang.duapp.com) |[webfrogs](http://blog.nswebfrog.com/) |[代码手工艺人](http://joeyio.com) |[Lancy's Blog](http://gracelancy.com) |[I'm Allen](http://www.imallen.com) |[Travis' Blog](http://imi.im/)

|[王中周的技术博客](http://wangzz.github.io/)

|[会写代码的猪](http://jiajun.org/)

|[克伟的博客](http://wangkewei.cnblogs.com/)

|[摇滚诗人](http://cnblogs.com/biosli) |[Luke's Homepage](http://geeklu.com/)

|[萧宸宇](http://iiiyu.com/)

|[Yuan博客](http://www.heyuan110.com/) |[Shining IO](http://shiningio.com/)

|[YIFEIYANG--易飞扬的博客](http://www.yifeiyang.net/) |[KooFrank's Blog](http://koofrank.com/)

|[hello it works](http://helloitworks.com)

|[码农人生](http://msching.github.io/) |[玉令天下的Blog](http://yulingtianxia.com)

|[不掏蜂窝的熊](http://www.hotobear.com/)

|[猫·仁波切](https://andelf.github.io/)

|[煲仔饭](http://ivoryxiong.org/)

|[里脊串的开发随笔](http://adad184.com)

|[Chun Tips](http://chun.tips/)

|[Why's blog - 汪海的实验室](http://blog.callmewhy.com/)

|[土土哥的技术Blog](http://tutuge.me/)

|[庞海礁的个人空间 ](http://www.olinone.com/) |[Casa Taloyum](http://casatwy.com/) |[Kenshin Cui's Blog](http://www.cnblogs.com/kenshincui/)

|[技术哥的博客](http://suenblog.duapp.com/)

|[老谭笔记](http://www.tanhao.me/) |[coderyi](http://www.coderyi.com/)

|[雷纯锋的技术博客](http://blog.leichunfeng.com) |自适应布局Masonry

Git:https://github.com/lanoudl/LO_Masonry

链接: https://pan.baidu.com/s/1jIxGcHBEY83uy4P21MVeGg 密码: bagq

断点续传的实现过程

Git:https://github.com/lanoudl/LO_DownLoadTask

链接: https://pan.baidu.com/s/10KPjCAqmFo0GA6AzAXYY4g 密码: w7dd

录音、录视频功能的实现过程

Git:https://github.com/lanoudl/LO_AudioRecorder

链接: https://pan.baidu.com/s/1XUexXTEuQWkvACgOqdvhbA 密码: v58f

文件上传功能的实现过程

Git:https://github.com/lanoudl/LO_Upload

链接: https://pan.baidu.com/s/1SxqTDlPglx4CBrYhJgBiqA 密码: h5gc

字符串加密的实现过程(md5,base64..)

Git:https://github.com/lanoudl/LO_EncryptDo

链接:https://pan.baidu.com/s/19skMCjtcKbDhWpiOjC-YPw 密码: ugvy

XML数据解析

Git:https://github.com/fuxiaohui/LO_XMLParser

链接: https://pan.baidu.com/s/1T2JgiZC9yNh5LdfBF3pCzg 密码: jn5u

SQLite关系数据库

Git:https://github.com/fuxiaohui/LO_SQLite

链接: https://pan.baidu.com/s/1PUa6ON5HLZSlU6TKmgwoNA 密码: qdub

JSON数据解析

Git:https://github.com/fuxiaohui/LO_JSONParse

链接: https://pan.baidu.com/s/1yFSZ4hqj7NzxuPC2SRxn8g 密码: 7342

CoreData框架的使用过程

Git:https://github.com/fuxiaohui/LO_CoreData

链接: https://pan.baidu.com/s/1tt_zz3eNQGGGmVNZYv3srQ

喜欢的记得点上小

2017-06-09 01:46:55 b735098742 阅读数 6653
  • 微信h5支付开发-php开发微信h5支付demo

    会员免费看,http://edu.csdn.net/lecturer/842右侧可办理会员卡。微信h5支付开发是子恒老师《子恒说微信开发》视频教程的第17部。详细讲解了微信H5支付开发,内容包含开通H5支付,实现微信h5支付,订单查询,关闭订单等等。欢迎反馈,微信号:QQ68183131

    8009 人正在学习 去看看 秦子恒

小米手环iOS开发实战(二):开发Demo让你的手环振动起来

上一节讲了CoreBluetooth的使用,理论知识很枯燥,那么现在先利用上一节讲的内容,做一个简易手环应用,实现连接/断开手环,查看手环UUID、查看电量信息,并让振动的功能。
本节知识默认大家掌握iOS的基础控件,掌握通过storyboard或代码搭建界面UI,能够利用Swift或Objective-C编写程序。文章会尽量详细讲解这些过程,当然如果你是大牛可以放心跳读。


章节目录

  • 蓝牙连接所涉及到的类
  • 小米手环Demo应用的开发
  • 一些功能优化

蓝牙连接所涉及到的类

上一节讲了怎么用CoreBluetooth,本节讲一下所涉及到的类,及常用的成员函数和成员变量,其他方法请见苹果开发文档。

CBCentralManager
此类为中心设备类,用于控制作为中心设备时的行为

  • state:获取当前中心设备状态
  • isScanning:当前中心设备是否在扫描外围设备
  • stopScan():停止扫描外围设备
  • scanForPeripherals(...):扫描外围设备(请确保蓝牙开启)
  • connect(...):连接外围设备(需要先扫描到外围设备)
  • cancelPeripheralConnection(...):断开外围设备

CBPeripheral
此类为外围设备类,用于对外围设备进行管理

  • name:获取外围设备的名称
  • rssi:获取当前外围设备的信号强度
  • state:获取外围设备的状态(disconnected/connecting/connected)
  • services:获取外围设备所提供的服务(需要先扫描到服务)
  • discoverServices(...):扫描设备所提供的服务
  • discoverCharacteristics(...):扫描特征值(需要先获取服务)
  • readValue(...):读取特征值所对应的值(需要先获取到特征值,同时要注意此方法不反回值,要用协议的didUpdateValueFor characteristic方法处理)

是不是已经懵了?在此做一个图大致描述一下流程,其实这些方法的调用还是很有规律的。
CoreBluetooth调用流程

CBCharacteristic
外围设备服务的特征值

  • Value:获取特征值对应的值


小米手环Demo应用的开发

本Demo是对上一节所讲CoreBluetooth的操作复习,每个方法的实现已经有所解释,故在此不再赘述。如果有疑问,欢迎在评论区提问及讨论。
该Demo所要实现的功能:练习连接设备、断开设备、读取手环信息、让手环振动。具体涉及到的知识点为连接和断开设备、获取设备服务和特征值、获取特征值对应的信息以及对其写入。

  • 界面搭建
    方便起见,该项目直接采用storyboard搭建,如果不会可以看项目Demo
    界面搭建
    @IBOutlet weak var scanButton: UIButton!
    @IBOutlet weak var stopButton: UIButton!
    @IBOutlet weak var vibrateButton: UIButton!
    @IBOutlet weak var stopVibrateButton: UIButton!
    @IBOutlet weak var loadingInd: UIActivityIndicatorView!
    @IBOutlet weak var statusLabel: UILabel!
    @IBOutlet weak var resultField: UITextView!
    @IBOutlet weak var vibrateLevel: UISegmentedControl!
  • 设置蓝牙操作过程所需对象
    涉及到的类在第一讲已经讲解,如果有不明白的,可以查阅前面的讲解。
    var theManager: CBCentralManager!
    var thePerpher: CBPeripheral!
    var theVibrator: CBCharacteristic!
  • CoreBluetooth协议方法的实现
    本部分内容在第一讲已经涉及,如果有不明白的,可以查阅前面的讲解。
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        theManager = CBCentralManager.init(delegate: self as? CBCentralManagerDelegate, queue: nil)
        self.scanButton.isEnabled = false
        statusLabel.text = ""
        loadingInd.isHidden = true
    }

    // 扫描并连接
    @IBAction func startConnectAction(_ sender: UIButton) {
        switch theManager.state {
        case .poweredOn:
            statusLabel.text = "正在扫描…"
            theManager.scanForPeripherals(withServices: nil, options: nil)
            self.loadingInd.startAnimating()
            self.scanButton.isEnabled = false
            self.isDisconnected = false
        default:
            break
        }
    }

    @IBAction func disconnectAction(_ sender: UIButton) {
        if ((thePerpher) != nil) {
            theManager.cancelPeripheralConnection(thePerpher)
            thePerpher = nil
            theVibrator = nil
            statusLabel.text = "设备已断开"
            scanButton.isEnabled = true
            isDisconnected = true
            isVibrating = false
        }
    }

    @IBAction func vibrateAction(_ sender: Any) {
        if ((thePerpher != nil) && (theVibrator != nil)) {
            let data: [UInt8] = [UInt8.init(vibrateLevel.selectedSegmentIndex+1)];
            let theData: Data = Data.init(bytes: data)
            thePerpher.writeValue(theData, for: theVibrator, type: CBCharacteristicWriteType.withoutResponse)
        }
    }

    @IBAction func stopVibrateAction(_ sender: UIButton) {
        if ((thePerpher != nil) && (theVibrator != nil)) {
            let data: [UInt8] = [UInt8.init(0)];
            let theData: Data = Data.init(bytes: data)
            thePerpher.writeValue(theData, for: theVibrator, type: CBCharacteristicWriteType.withoutResponse)
            isVibrating = false
        }
    }


    // 处理当前蓝牙主设备状态
    func centralManagerDidUpdateState(_ central: CBCentralManager) {
        switch central.state {
        case .poweredOn:
            statusLabel.text = "蓝牙已开启"
            self.scanButton.isEnabled = true
        default:
            statusLabel.text = "蓝牙未开启!"
            self.loadingInd.stopAnimating()
        }
    }

    // 扫描到设备
    func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
        if (peripheral.name?.hasSuffix("MI"))! {
            thePerpher = peripheral
            central.stopScan()
            central.connect(peripheral, options: nil)
            statusLabel.text = "搜索成功,开始连接"

        }
        // 特征值匹配请用 peripheral.identifier.uuidString
        resultField.text = String.init(format: "发现手环\n名称:%@\nUUID:%@\n", peripheral.name!, peripheral.identifier.uuidString)
    }

    // 成功连接到设备
    func centralManager(_ central: CBCentralManager, didConnect peripheral: CBPeripheral) {
        statusLabel.text = "连接成功,正在扫描信息..."
        peripheral.delegate = self
        peripheral.discoverServices(nil)
    }

    // 连接到设备失败
    func centralManager(_ central: CBCentralManager, didFailToConnect peripheral: CBPeripheral, error: Error?) {
        loadingInd.stopAnimating()
        statusLabel.text = "连接设备失败"
        scanButton.isEnabled = true
    }

    // 扫描服务
    func peripheral(_ peripheral: CBPeripheral, didDiscoverServices error: Error?) {
        if ((error) != nil) {
            statusLabel.text = "查找服务失败"
            loadingInd.stopAnimating()
            scanButton.isEnabled = true
            return
        }
        else {
            for service in peripheral.services! {
                peripheral.discoverCharacteristics(nil, for: service)
            }
        }
    }

    // 扫描到特征值
    func peripheral(_ peripheral: CBPeripheral, didDiscoverCharacteristicsFor service: CBService, error: Error?) {
        if ((error) != nil) {
            statusLabel.text = "查找服务失败"
            loadingInd.stopAnimating()
            scanButton.isEnabled = true
            return
        }
        else {
            for characteristic in service.characteristics! {
                peripheral.setNotifyValue(true, for: characteristic)

                if (characteristic.uuid.uuidString == BATTERY) {
                    peripheral.readValue(for: characteristic)
                }
                else if (characteristic.uuid.uuidString == DEVICE) {
                    peripheral.readValue(for: characteristic)
                }
                else if (characteristic.uuid.uuidString == VIBRATE) {
                    theVibrator = characteristic
                }
            }
        }
    }

    // 扫描到具体设备
    func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {
        if ((error) != nil) {
            statusLabel.text = "从设备获取值失败"
            return
        }
        else {
            if(characteristic.uuid.uuidString == BATTERY) {
                var batteryBytes = [UInt8](characteristic.value!)
                var batteryVal:Int = Int.init(batteryBytes[0])
                self.resultField.text = String.init(format: "%@电量:%d%%\n", resultField.text, batteryVal)
            }
            loadingInd.stopAnimating()
            scanButton.isEnabled = true
            statusLabel.text = "信息扫描完成!"
            if (isVibrating) {
                vibrateAction(Any)
            }
        }
    }

    // 与设备断开连接
    func centralManager(_ central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral, error: Error?) {
        statusLabel.text = "设备已断开"
        scanButton.isEnabled = true
        if(!isDisconnected) {
            theManager.scanForPeripherals(withServices: nil, options: nil)
        }
    }

再次重提一下我在解决关于CBCentralManager的State属性遇到的问题:
CBCentralManager的State属性在之前是CBCentralManagerState,但是现在变成了CBManagerState,而后者需要iOS10以上才支持。查了StackoverFlow发现很多人也遇到了同样的问题,也是苹果很矛盾的一个用发。通过测试发现用switch语句对state属性判断可以解决系统版本限制的问题,也是普遍采用的方法。

补充:
小米手环振动的UUID是2A06,0代表不振,1为短振,2为长振。
其他UUID也均有相关文章有写,太多就不一一列举,可以直接Google之。如果需要的人比较多,我可以稍后撰写一份对照表。

接下来,部署->调试即可。功能运行正常。

一些功能改进

前一部分改进已经放到了上述代码中,若后期有改进将更新此处。



至此已经完成了对第一讲知识的复习,接下来我们将讲解对小米手环其他功能的开发。最终截稿时完成仿小米手环APP,并实现各种创意功能。

PS:现在开发小米手环可能都是出于情怀了吧?还有没有必要继续做下去呢。如果想要二次开发的人比较多,可以尝试做一套SDK方便开发。

写文章不易,如果觉得满意,欢迎大家粉一下我的GitHub,以及动动手指Star一下我的项目,持续更新需要你的支持!
本人GitHub:https://github.com/Minecodecraft
本项目链接:https://github.com/Minecodecraft/MiBandDemo

“小米手环iOS开发实战”系列
小米手环iOS开发实战(一):iOS蓝牙框架CoreBluetooth
小米手环iOS开发实战(二):开发Demo让你的手环振动起来

2015-12-01 09:43:37 VNanyesheshou 阅读数 6701
  • 微信h5支付开发-php开发微信h5支付demo

    会员免费看,http://edu.csdn.net/lecturer/842右侧可办理会员卡。微信h5支付开发是子恒老师《子恒说微信开发》视频教程的第17部。详细讲解了微信H5支付开发,内容包含开通H5支付,实现微信h5支付,订单查询,关闭订单等等。欢迎反馈,微信号:QQ68183131

    8009 人正在学习 去看看 秦子恒

最近公司提供了一个学习iOS的机会,问我是否愿意学习iOS,还是继续只做android开发。我感觉非常幸运,能有此机会去学习iOS,当即说要学习iOS开发。

学习了几天啦,做了一个小demo实现了获取经纬度,海拔,航向,及具体位置信息的功能。

iOS使用定位不像android直接指定使用gps,获取网络获取。iOS定位需要使用Core Location框架,它提供了三种技术来获取位置:GPS、蜂窝或WiFi。

1   GPS卫星  优点最为准确,缺点 耗电量大,不能遮挡(建筑物内不行)

2   WI-FI通过WIFI路由器定位 优点比较省电,经济实惠

3   蜂窝式移动电话基站。通过移动运营商基站定位 误差比较大

在这些技术中,GPS最为精准,如果有GPS硬件,Core Location将优先使用它。如果设备没有GPS硬件(如WiFi iPad)或使用GPS获取当前位置时失败,

Core Location将退而求其次,选择使用WiFi,再次则使用蜂窝。

首先看一下定位的类 CLLocationManager 的方法


要使用位置管理器,必须首先将框架Core Location加入到项目中,再导入其接口文件:

导入框架的过程如下图所示:


#import<CoreLocation/CoreLocation.h>

还需要实现代理CLLocationManagerDelegate
如下ViewController.h

#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>
@interface ViewController : UIViewController <CLLocationManagerDelegate>{
    CLLocationManager *_lm;
    NSString *_latitude;
    NSString *_longitude;
}
- (IBAction)startLocation;
- (IBAction)stopLocation;
@property (weak, nonatomic) IBOutlet UILabel *latLon;
@property (weak, nonatomic) IBOutlet UILabel *city;
@property (weak, nonatomic) IBOutlet UILabel *location;
@end

初始化定位服务,定位精度和位置更新距离可以根据上面的方法自行设置。

这里需要提示的是:iOS 8 还提供了更加人性化的定位服务选项。App 的定位服务不再仅仅是关闭或打开。

现在,定位服务的启用提供了三个选项,「永不」「使用应用程序期间」和「始终」。同时,考虑到能耗问题,如果一款 App 要求始终能在后台开启定位服务,iOS 8 不仅会在首次打开 App 时主动向你询问,还会在日常使用中弹窗提醒你该 App 一直在后台使用定位服务,并询问你是否继续允许。在iOS7及以前的版本,如果在应用程序中使用定位服务只要在程序中调用 startUpdatingLocation方法应用就会询问用户是否允许此应用是否允许使用定位服务,同时在提示过程中可以通过在info.plist 中配置通过配置Privacy - Location Usage Description告诉用户使用的目的,同时这个配置是可选的。 
但是在iOS8中配置配置项发生了变化,可以通过配置NSLocationAlwaysUsageDescription或者 NSLocationWhenInUseUsageDescription来告诉用户使用定位服务的目的,并且注意这个配置是必须的,如果不进行配置则默 认情况下应用无法使用定位服务,打开应用不会给出打开定位服务的提示,除非安装后自己设置此应用的定位服务。同时,在应用程序中需要根据配置对 requestAlwaysAuthorization或locationServicesEnabled方法进行请求。


调用方法requesetAlwaysAuthorization则需要在info.plist中配置NSLocationAlwaysUsageDescription,type为string,value可填可不填。

调用方法requesetWhenInUseAuthorization则需要在info.plist中配置NSLocationWhenInUseUsageDescription,type为string,value可可不填。

这样才能获取到位置信息。

#import "ViewController.h"

#define IS_IOS8 ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8)

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    if ([CLLocationManager locationServicesEnabled]) {
        if (nil == _lm) {
            _lm = [[CLLocationManager alloc]init];
            _lm.delegate = self;
            //设置定位精度
            _lm.desiredAccuracy = kCLLocationAccuracyBest;
            //设置位置更新的最小距离
            _lm.distanceFilter = 100.f;
            if (IS_IOS8) {//ios8之后点版本需要使用下面的方法才能定位。使用一个即可。
                //[_lm requestAlwaysAuthorization];
                [_lm requestWhenInUseAuthorization];
            }
        }
    }else{
        NSLog(@"定位服务不可利用");
    }
}

- (IBAction)startLocation{
    NSLog(@"开始定位");
    [_lm startUpdatingLocation];
}

- (IBAction)stopLocation {
    NSLog(@"停止定位");
    [_lm stopUpdatingLocation];
}


- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error{
    //NSLog(@"location %@",error);
}

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{
    _latitude = [NSString stringWithFormat:@"%3.5f",newLocation.coordinate.latitude];
    _longitude = [NSString stringWithFormat:@"%3.5f",newLocation.coordinate.longitude];

}

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{
    // 设备的当前位置
    CLLocation *currLocation = [locations firstObject];
    //获取经纬度
    _latitude = [NSString stringWithFormat:@"%3.5f",currLocation.coordinate.latitude];
    _longitude = [NSString stringWithFormat:@"%3.5f",currLocation.coordinate.longitude];
    _latLon.text =[NSString stringWithFormat:@"lat %@,\nlong %@",_latitude,_longitude];
    //获取海拔 航向 速度
    NSLog(@"经度:%@,纬度:%@,海拔:%f,航向:%f,行走速度:%f",_longitude,_latitude,currLocation.altitude,currLocation.course,currLocation.speed);
    CLGeocoder *geoCd = [[CLGeocoder alloc] init];//反编码通过经纬度获取具体位置信息。
    [geoCd reverseGeocodeLocation:currLocation completionHandler:^(NSArray *array, NSError *error){
        if (array.count > 0){
            CLPlacemark *placemark = [array objectAtIndex:0];
            //将获得的所有信息显示到label上
            self.location.text = placemark.name;
            //获取城市
            NSString *cty = placemark.locality;
            if (!cty) {
                //四大直辖市的城市信息无法通过locality获得,只能通过获取省份的方法来获得(如果city为空,则可知为直辖市)
                cty = placemark.administrativeArea;
            }
            self.city.text = cty;
            NSLog(@"city = %@", cty);
        }
        else if (error == nil && [array count] == 0)
        {
            NSLog(@"No results were returned.");
        }
        else if (error != nil)
        {
            NSLog(@"An error occurred = %@", error);
        }
    }];  
}
@end

仔细看上面的代码,你会发现两个地方都在获取经纬度,你会很诧异吧,

这是因为

-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation

这个方法在ios6中已经废除变成另一个方法了。

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations

可以通过locations的下标获取新的定位和上一次的定位信息。

效果如图所示:


点击开始定位按钮,会startUpdatingLocation,由于定位服务是比较费电的,不用的时候要及时关闭定位,也可以获取定位成功后直接调用

stopUpdatingLocation停止定位,也就是在方法(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations中直接停止。



代码下载地点:http://pan.baidu.com/s/1eQuLPIE

有什么问题欢迎指正,大家一起进步啊。

2016-05-06 23:53:06 l2i2j2 阅读数 5230
  • 微信h5支付开发-php开发微信h5支付demo

    会员免费看,http://edu.csdn.net/lecturer/842右侧可办理会员卡。微信h5支付开发是子恒老师《子恒说微信开发》视频教程的第17部。详细讲解了微信H5支付开发,内容包含开通H5支付,实现微信h5支付,订单查询,关闭订单等等。欢迎反馈,微信号:QQ68183131

    8009 人正在学习 去看看 秦子恒

首先感谢iOS122提供的可以免费GET请求到的网络数据的接口

为了方便cell自适应高度,此处的cell是带Xib的。为了方便理解代码,此处没有应用MVC设计模式,实际开发中不能这样。

#import "ViewController.h"
#import "AFNetworking.h"
#import "MJRefresh.h"
#import "TestTableViewCell.h"

@interface ViewController () <UITableViewDelegate, UITableViewDataSource>

@property (nonatomic, strong) UITableView *tableView;
@property (nonatomic, strong) NSMutableArray *dataArray;
@property (assign, nonatomic) int page;

@end

@implementation ViewController

static NSString *identifier = @"cell";

- (void)viewDidLoad {
    [super viewDidLoad];
    self.dataArray = [NSMutableArray array];
    
    self.tableView = [[UITableView alloc] init];
    self.tableView.frame = CGRectMake(0, 0, 375, 667);
    self.tableView.backgroundColor = [UIColor colorWithRed:0.635 green:1.000 blue:0.905 alpha:1.000];
    self.tableView.delegate = self;
    self.tableView.dataSource = self;
    [self.view addSubview:self.tableView];
    // cell自适应高度
    self.tableView.estimatedRowHeight = 100;
    self.tableView.rowHeight = UITableViewAutomaticDimension;
    
    [self.tableView registerNib:[UINib nibWithNibName:@"TestTableViewCell" bundle:nil] forCellReuseIdentifier:identifier];
    
    self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
        self.page = 0;
        [self updateData];
    }];
    self.tableView.mj_footer = [MJRefreshBackNormalFooter footerWithRefreshingBlock:^{
        [self updateData];
    }];
}

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [self.tableView.mj_header beginRefreshing];
}

- (void)updateData {
    NSString * urlStr = [NSString stringWithFormat:@"http://www.ios122.com/find_php/index.php?viewController=YFPostListViewController&model[category]=ui&model[page]=%d", self.page++];
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    [manager GET:urlStr parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {
        
    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        [self.tableView.mj_header endRefreshing];
        [self.tableView.mj_footer endRefreshing];
        if (self.page == 1) {
            // 如果是下拉刷新数据,将所有数据移除,再重新添加刚刷新的数据
            for (;0 < self.dataArray.count;) {
                [self.dataArray removeObjectAtIndex:0];
            }
        }
        // 将刷新到的数据添加到数组的后面
        for (NSMutableDictionary *item in responseObject) {
            if (item != (NSMutableDictionary *)[NSNull null]) {
                [self.dataArray addObject:item];
            }
        }
        [self.tableView reloadData];
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        [self.tableView.mj_header endRefreshing];
        [self.tableView.mj_footer endRefreshing];
    }];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return self.dataArray.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    TestTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier forIndexPath:indexPath];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    NSDictionary *dict = self.dataArray[indexPath.row];
    NSString * content = [NSString stringWithFormat:@"标题:%@ 内容:%@ 标题:%@ 内容:%@ 标题:%@ 内容:%@ 标题:%@ 内容:%@ 标题:%@ 内容:%@ 标题:%@ 内容:%@", dict[@"title"], dict[@"desc"], dict[@"title"], dict[@"desc"], dict[@"title"], dict[@"desc"], dict[@"title"], dict[@"desc"], dict[@"title"], dict[@"desc"], dict[@"title"], dict[@"desc"]];
    cell.label.text = content;
    cell.label.numberOfLines = 0;
    cell.backgroundColor = [UIColor colorWithRed:0.543 green:0.854 blue:1.000 alpha:1.000];
    return cell;
}

@end

ios仿微信的demo

阅读数 197

IOS越狱开发好demo

阅读数 332

iOS framework demo

阅读数 238

没有更多推荐了,返回首页