![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
IPhone开发高级系列
文章平均质量分 85
望京最帅程序猿
在移动端开发方面有丰富的经验,擅长IOS,H5,React-Native等技术开发,Java后端开发也有涉猎。曾开发漫画岛,会计家园,畅捷服务,易代账,施工现场,项目BI,数字项目平台等App。曾经服务过App梦工厂,用友-畅捷通,目前就职于广联达。乐于分享,爱好开源,对技术有着强烈的追求。
展开
-
IOS13适配之杂项-持续更新
IOS13升级后接到好多用户反馈,也有自己发现的,整理一下,希望能帮助大家。UITextField 异常在设置leftView 左按钮时,如果使用的是UIImageView,UIImageView的大小会自动根据图片大小自动缩放内容大小,即会出现图片无法按照意图显示的问题 UIImageView* view = [[UIImageView alloc] initWithFrame:C...原创 2019-12-12 11:17:16 · 306 阅读 · 0 评论 -
iOS13适配之暗黑模式(Dark Mode)
如果是老项目,改动太多,不想适配暗黑模式的话,有个偷懒的方法。或者还没适配完又不想给用户看,可以先暂时全局关闭暗黑模式:在 Info.plist 文件中,添加 key 为User Interface Style,类型为 String,value 设置为Light即可。追求极致体验,就要完全适配,所有页面没适配好的统统适配一遍,分为以下几种情况。一、适配Dark Mode 颜色适配...原创 2019-12-09 11:22:20 · 2136 阅读 · 0 评论 -
NSRunLoop 概述和原理
IOS搞了很久了,发现对NSRunLoop理解还是没透,彻底理解一下,用一句话总结,就是C++的消息机制。1.什么是NSRunLoop?我们会经常看到这样的代码:- (IBAction)start:(id)sender{pageStillLoading = YES;[NSThread detachNewThreadSelector:@selector原创 2016-02-02 11:20:59 · 736 阅读 · 0 评论 -
xcode如何实现多工程联编
在开发项目时,有时候需要依赖其他的工程(通常是第三方开源的静态库工程)。网上有很多第三方开源库都是以一个静态库工程提供给开发者的(比如Codova, CocoaPods等)。其次,我们自己可以建一个这样的静态库工程,专门用来放自己在实际开发中用的比较多的技术,比如一些帮助类,一些好的技术封装等等。这样在开发新项目时,就可以把这个工程引入进来,要用里面的功能时就可以直接使用,不用找这个工程c转载 2015-12-15 08:51:00 · 2334 阅读 · 0 评论 -
转一个 Xcode 7 缺少 *.dylib库的解决方法
Xcode7中 Link Binary With Libraries 没有 .dylib库,只能找到对应的 .tbd,但不能代替使用,通过查找资料,尝试后得到以下两种解决方法。方法1. (heqin测试可行)在项目Target中的Link Binary With Libraries 手动添加 首先点击 “+” 显示搜索添加页面,在这里如果搜索之前的libsqlite3.dylib是转载 2015-12-15 08:46:40 · 840 阅读 · 0 评论 -
iOS系类教程之用instruments来检验你的app
比较了好多关于instruments 还是发现老外写的比较牛逼.于是果断翻译过来.有能力的的可以去看英文原版,鼓励大家看原版资料远离二手教程。这里是原文 入门为了节省大家的时间,提供一个演示的Demo给大家。代码传送门. 下载后解压然后用xcode打开。 编译运行APP后 然后在搜索框内输入任意词汇,点击结果你会看到下面的结果转载 2015-11-15 07:22:45 · 934 阅读 · 0 评论 -
MVVM框架实践IOS集锦
应用 ReactiveCocoa实现http://www.cocoachina.com/bbs/read.php?tid=220409浅谈iOS中MVVM的架构设计与团队协作http://www.cocoachina.com/ios/20150122/10987.html原创 2015-06-18 09:12:25 · 5161 阅读 · 0 评论 -
block使用小结、在arc中使用block、如何防止循环引用
from http://www.cnbluebox.com/?p=255引言使用block已经有一段时间了,感觉自己了解的还行,但是几天前看到CocoaChina上一个关于block的小测试主题: 【小测试】你真的知道blocks在Objective-C中是怎么工作的吗?,发现竟然做错了几道, 才知道自己想当然的理解是错误的,所以抽时间学习了下,并且通过一些测试代码进行测试,产生这转载 2014-08-29 16:21:35 · 1267 阅读 · 0 评论 -
一个界面中如何使用两个tableView
首先,创建两个全局的tableview; @interface TianPinXunLiViewController (){ UITableView *leftTableView; UITableView *rightTableView;}@end其次,实现代理的时候,用对象比对的方法 A isequal B#pragm原创 2014-05-29 10:57:47 · 30018 阅读 · 1 评论 -
ios7 UIScrollView 尺寸问题
如果在UINavigationController内设置一个UIViewControlller,而UIViewController的第一个子视图是UIScrollView的话,UIScrollview里面所有的subView都会发生下移,如图所示UIScrollView 尺寸问题" title="ios7 UIScrollView 尺寸问题" style="margin:0px; padd原创 2014-05-27 15:48:18 · 3835 阅读 · 2 评论 -
使用ReactiveCocoa实现iOS平台响应式编程
使用ReactiveCocoa实现iOS平台响应式编程ReactiveCocoa和响应式编程在说ReactiveCocoa之前,先要介绍一下FRP(Functional Reactive Programming,响应式编程),在维基百科中有这样一个例子介绍:在命令式编程环境中,a = b + c 表示将表达式的结果赋给a,而之后改变b或c的值不会影响a。但在响应式编程中原创 2014-06-14 01:01:18 · 38494 阅读 · 2 评论 -
说说ReactiveCocoa 2
ReactiveCocoa是Github开源的一款cocoa FRP 框架,我在之前的文章里有过介绍(当时还是1.x版本,2.x版本有了新的变化,API也有部分不兼容) 这里再简单地提一下。 Native app有很大一部分的时间是在等待“”阅读器ReactiveCocoa 2cocoa FRP 框架转自无网不剩的博客转载 2014-06-14 01:05:51 · 3027 阅读 · 0 评论 -
移动App性能监控解决方案集锦
移动端监控体系之技术原理剖析http://www.jianshu.com/p/8123fc17fe0e阿里百川码力APP监控来了 重量级选手进入APM市场http://www.imooc.com/article/14205?block_id=tuijian_wz微信iOS卡顿监控系统http://mp.weixin.qq.com/s/M6r7NIk-s8Q-TO原创 2017-07-04 09:49:14 · 4217 阅读 · 0 评论 -
iOS代码重构(二)CoreData多线程(支持线程安全)
CoreData对多线程的支持比较奇怪(按照一般的思路来说),CoreData的NSPersistentStoreCoordinator和NSManagedObjectContext对象都是不能跨线程使用的,NSManagedObject也不行,有人想加锁不就完了。前提描述 原项目中已有CoreData封装,但是线程不完全的,而且应用的地方较多,参考了网上的一些文章,如果按主流的搞原创 2017-01-20 17:43:58 · 1874 阅读 · 0 评论 -
IOS经典书籍推荐
基础篇objective-c基础教程iphone 开发秘籍 进阶篇 iOS 6编程实战 Objective-C 高级编程:iOS与OS X多线程和内存管理Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法原创 2014-04-29 10:00:00 · 13328 阅读 · 0 评论 -
IOS 屏幕适配(纯粹通过代码设置坐标和大小的布局方案)
看了网上有很多屏幕适配的文章,大多是用iOS的相对布局来实现屏幕适配(autoLayout,或Masonry)。一些文章主要解决,iphone6/6p刚出来时,以前只解决屏幕高度适配,现在也要解决屏幕宽度适配的问题。本文主要解决,项目已经过度过来,但做新的页面时,UI给的设计往往只有iphone6的尺寸,如何向下兼容iphone4s/iphone5/5s,向上兼容6p。原创 2016-05-04 14:45:40 · 7064 阅读 · 0 评论 -
ReactiveCocoa入门教程——第二部分
本文翻译自RayWenderlich ReactiveCocoa Tutorial – The Definitive Introduction: Part 2/2 ReactiveCocoa是一个框架,它能让你在iOS应用中使用函数响应式编程(FRP)技术。在本系列教程的第一部分中,你学到了如何将标准的动作与事件处理逻辑替换为发送事件流的信号。你还学到了如何转换、转载 2016-03-08 13:20:14 · 1636 阅读 · 0 评论 -
ReactiveCocoa入门教程——第一部分
本文翻译自RayWenderlich ReactiveCocoa Tutorial – The Definitive Introduction: Part 1/2作为一个iOS开发者,你写的每一行代码几乎都是在响应某个事件,例如按钮的点击,收到网络消息,属性的变化(通过KVO)或者用户位置的变化(通过CoreLocation)。但是这些事件都用不同的方式来处理,比如a转载 2016-03-08 13:17:11 · 749 阅读 · 0 评论 -
Core Data with Mantle
Mantle makes it easy to write a simple model layer for your Cocoa or Cocoa Touch application. Mantle can still be a convenient translation layer between the API and your managed model objects.原创 2014-06-14 01:30:50 · 3838 阅读 · 0 评论 -
ReactiveCocoa与Functional Reactive Programming
什么是Functional Reactive ProgrammingFunctional Reactive Programming(以下简称FRP)是一种响应变化的编程范式。先来看一小段代码a = 2b = 2c = a + b // c is 4b = 3// now what is the value of c?如果使用FRP,c的值将会随着b的值改变而转载 2014-05-11 22:10:44 · 1464 阅读 · 0 评论 -
解决iOS程序UI主线程和定时器相互阻塞的问题
我的问题是这样,我的页面上有一个UIScrollView和一个定时器用来记录当前考试模式下的剩余时间,问题出现了:当我滑动滚动试图时,定时器的方法便不在运行(即被UI主线程阻塞)。google一下找到了解决办法:将定时器放在非主线程中执行将更新UI的操作放到主线程,这样UI主线程和定时器就能互不干扰的相互工作了。在另一个项目中,还解决了一个问题:手机验证码,获取按钮,点击获取后,会开始倒计原创 2014-06-04 17:38:25 · 6507 阅读 · 0 评论 -
开发者所需要知道的iOS7 SDK新特性
春风又绿加州岸,物是人非又一年。WWDC 2013 keynote落下帷幕,新的iOS开发旅程也由此开启。在iOS7界面重大变革的背后,开发者们需要知道的又有哪些呢。同去年一样,我会先简单纵览地介绍iOS7中我个人认为开发者需要着重关注和学习的内容,之后再陆续对自己感兴趣章节进行探索。计划继承类似WWDC2012的笔记的形式,希望国内开发者有所帮助。 全新UI设计iOS7最大的转载 2014-01-22 10:26:25 · 1454 阅读 · 0 评论 -
25个增强iOS应用程序性能的提示和技巧(高级篇)
在开发iOS应用程序时,让程序具有良好的性能是非常关键的。这也是用户所期望的,如果你的程序运行迟钝或缓慢,会招致用户的差评。然而由于iOS 设备的局限性,有时候要想获得良好的性能,是很困难的。在开发过程中,有许多事项需要记住,并且关于性能影响很容易就忘记。本文收集了25个关于可以提升 程序性能的提示和技巧。分为3个不同的等级:初级、中级和高级:高级当且仅当下面这些技巧能够解决问题的时候转载 2013-12-13 10:57:06 · 1870 阅读 · 0 评论 -
25个增强iOS应用程序性能的提示和技巧(初级篇)
在开发iOS应用程序时,让程序具有良好的性能是非常关键的。这也是用户所期望的,如果你的程序运行迟钝或缓慢,会招致用户的差评。然而由于iOS设备的局限性,有时候要想获得良好“”阅读器在开发iOS应用程序时,让程序具有良好的性能是非常关键的。这也是用户所期望的,如果你的程序运行迟钝或缓慢,会招致用户的差评。然而由于iOS设备的转载 2013-12-13 10:53:58 · 1855 阅读 · 0 评论 -
iOS开发知识与能力体系 思维导图
越写越多,整理不完,也许思维导图都不是最好的承载工具了,以后再继续补充。分辨率为2042*3917,点击查看大图:转载请注明出处:http://blog.csdn.net/hursing转载 2013-12-13 11:21:42 · 3276 阅读 · 0 评论 -
25个增强iOS应用程序性能的提示和技巧--中级篇
本文收集了25个关于可以提升程序性能的提示和技巧,分为3个不同的等级:初级、中级和高级。您也可以点击查看初级篇。 在性能优化时,当你碰到一些复杂的问题,应该注意和使用如下技巧:9.重用和延迟加载View10.缓存、缓存、缓存11.考虑绘制12.处理内存警告13.重用花销很大的对象14.使用Sprite Sheets15.避免重新处理数据16.选择转载 2013-12-13 10:55:28 · 1662 阅读 · 0 评论 -
IOS中的多核并发编程GCD
Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法。dispatch queue分成以下三种:1)运行在主线程的Main queue,通过dispatch_get_main_queue获取。/*!* @function dispatch_get_main_queue** @abstract* Returns the原创 2013-09-24 09:47:11 · 1821 阅读 · 0 评论 -
iOS多线程编程之NSThread的使用
1、简介:1.1 iOS有三种多线程编程的技术,分别是:1.、NSThread 2、Cocoa NSOperation (iOS多线程编程之NSOperation和NSOperationQueue的使用)3、GCD 全称:Grand Central Dispatch( iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用)转载 2013-09-12 14:51:29 · 1127 阅读 · 0 评论 -
iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用
介绍:Grand Central Dispatch 简称(GCD)是苹果公司开发的技术,以优化的应用程序支持多核心处理器和其他的对称多处理系统的系统。这建立在任务并行执行的线程池模式的基础上的。它首次发布在Mac OS X 10.6 ,iOS 4及以上也可用。设计:GCD的工作原理是:让程序平行排队的特定任务,根据可用的处理资源,安排他们在任何可用的处理器核心上执行任务。转载 2013-09-12 15:44:39 · 915 阅读 · 0 评论 -
iOS(iPhone,iPad))开发(Objective-C)开发库常用库索引
cngump 总结的常用IOS开发库索引 http://idevchina.com/t/20原创 2014-04-05 18:17:43 · 1427 阅读 · 0 评论 -
IOS6 API新特性实践
一 iOS6新特征:UIRefreshControl[下拉刷新]使用示例二 iOS6新特征:UICollectionView介绍三 iOS6新特征:UICollectionView高级使用示例之CircleLayout四 iOS6新特征:Social Framework 参考之SLComposeViewController五 iOS6新特征:SLComposeViewContro原创 2014-04-18 18:41:25 · 1728 阅读 · 0 评论 -
IOS6新特征
1、地图 iOS6抛弃了一直用的google map,而使用了自家的地图服务。相应地,MapKit框架也自然变成和Apple自家的地图服务绑定了。随之而来的好处是因为都是自家的内容,所以整合和开放会更进一步,第三方app现在有机会和地图应用进行交互了。也就是说,不使用自身搭载地图信息的app现在可以打开地图应用,并且显示一些感兴趣的路线和地点,这对于路线规划和记录类的应用来说这是个好原创 2014-04-18 18:27:30 · 1663 阅读 · 0 评论 -
CocoaPods安装和使用教程
Code4App 原创文章。转载请注明出处:http://code4app.com/article/cocoapods-install-usage目录CocoaPods是什么?如何下载和安装CocoaPods?如何使用CocoaPods?场景1:利用CocoaPods,在项目中导入AFNetworking类库场景2:如何正确编译运行一个包含CocoPods类库的项目Co转载 2014-05-12 08:47:20 · 1107 阅读 · 0 评论 -
iOS App性能优化
原文:http://www.hrchen.com/2013/05/performance-with-instruments/iOS App的性能关注点虽然iPhone的机能越来越好,但是app的功能也越来越复杂,性能从来都是移动开发的核心关注点之一。我们说一个app性能好,不是简单指感觉运行速度快,而应该是指应用启动快速、UI反馈响应及时、列表滚动操作流畅、内存使用合理转载 2014-04-26 01:54:44 · 3959 阅读 · 0 评论 -
IOS Table中Cell的重用reuse机制分析
创建UITableViewController子类的实例后,IDE生成的代码中有如下段落:[cpp] view plaincopy- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {原创 2014-04-26 01:52:33 · 2197 阅读 · 0 评论 -
IOS多线程之Block编程
1 什么是block iOS SDK 4.0开始,Apple引入了block这一特性。字面上说,block就是一个代码块,但是它的神奇之处在于在内联(inline)执行的时候(这和C++很像)还可以传递参数。同时block本身也可以被作为参数在方法和函数间传递,这就给予了block无限的可能。 对于闭包(block),有很多定义,其中闭包就是能够读取其原创 2014-04-22 23:16:07 · 8014 阅读 · 0 评论 -
ios7新特性实践
一 iOS 7 新特性:视图控制器切换API二 iOS 7系列译文:认识 TextKit三 iOS 7系列译文:iOS7的多任务处理四 iOS7 最佳实践:一个天气应用案例(上)五 iOS7 最佳实践:一个天气应用案例(下)原创 2014-04-18 18:53:29 · 1545 阅读 · 0 评论 -
iOS7 SDK新特性
春风又绿加州岸,物是人非又一年。WWDC 2013 keynote落下帷幕,新的iOS开发旅程也由此开启。在iOS7界面重大变革的背后,开发者们需要知道的又有哪些呢。同去年一样,我会先简单纵览地介绍iOS7中我个人认为开发者需要着重关注和学习的内容,之后再陆续对自己感兴趣章节进行探索。计划继承类似WWDC2012的笔记的形式,希望对国内开发者有所帮助。相关笔记整理如下:UI原创 2014-04-18 18:49:33 · 2747 阅读 · 0 评论 -
iOS项目的目录结构和开发流程
原文出处: Limboy 网上相关的资源不多,开源的且质量还不错的iOS项目也是少之又少,最近正好跟同事合作了一个iOS项目,来说说自己的一些想法。目录结构12345678AppDelegateModelsMacroGeneralH原创 2014-04-18 17:07:28 · 6830 阅读 · 0 评论 -
iOS多线程编程之NSOperation和NSOperationQueue的使用
前一篇 《iOS多线程编程之NSThread的使用》介绍三种多线程编程和NSThread的使用,这篇介绍NSOperation的使用。使用 NSOperation的方式有两种,一种是用定义好的两个子类:NSInvocationOperation 和 NSBlockOperation。另一种是继承NSOperation如果你也熟悉Java,转载 2013-09-12 14:54:04 · 1117 阅读 · 0 评论