摘要: 渐变 简介 渐变是从一个颜色到另外一种颜色的填充 Quartz 提供了 CGShadingRef 和 CGGradientRef 来创建轴向或径向渐变。 轴向渐变(也称为线性渐变)沿着由两个端点连接的轴线渐变。所有位于垂直于轴线的某条线上的点都具有相同的颜色值。 径向渐变也是沿着两个端点连接的轴线渐 阅读全文
posted @ 2016-05-21 15:40 韦韦韦 阅读(626) 评论(0) 推荐(0) 编辑
摘要: 概览 图形上下文 路径 颜色与颜色空间 变换 图案 阴影 渐变 透明层 Quartz 2D 中的数据管理 位图与图像遮罩 CoreGraphics 绘制 Layer 5.变换 简介 Quartz 2D 绘制模型定义了两种独立的坐标空间:用户空间(用于表现文档页)和设备空间(用于表现设备的本地分辨率) 阅读全文
posted @ 2016-05-21 15:35 韦韦韦 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 概览 图形上下文 路径 颜色与颜色空间 变换 图案 阴影 渐变 透明层 Quartz 2D 中的数据管理 位图与图像遮罩 CoreGraphics 绘制 Layer 0.说明 本篇博客主要是对官方文档的总结与补充。翻译部分参考了南峰子的博客。你可以在参考资料中查看。 1.概览 简介 Quartz2D 阅读全文
posted @ 2016-05-21 15:32 韦韦韦 阅读(2216) 评论(0) 推荐(0) 编辑
摘要: 关于MVC的争论 关于MVC的争论已经有很多,对此我的观点是:对于iOS开发中的绝大部分场景来说,MVC本身是没有问题的,你认为的MVC的问题,一定是你自己理解的问题(资深架构师请自动忽略本文). 行文过程中查阅了互联网上的大量文档,其中水平良莠不齐(最常见的就是MVC改个名就当MVVM的),当然也 阅读全文
posted @ 2016-05-21 15:00 韦韦韦 阅读(178) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2016-05-14 08:34 韦韦韦 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 1 iOS开发环境1.1 开发环境标准的配置是MacOSX+Xcode。MacOSX的话首选用苹果电脑,Macmini最便宜只要4000多就好了然后自己配一个显示器,MacBookPro 也可以,不推荐使用MacBookAir。还有很多人使用黑苹果或者虚拟机甚至在Windows上装一些工具都是不可取 阅读全文
posted @ 2016-05-12 15:50 韦韦韦 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 在利用JavaScriptCore与H5交互时出现异常提示: This application is modifying the autolayout engine from a background thread, which can lead to engine corruption and w 阅读全文
posted @ 2016-03-23 16:29 韦韦韦 阅读(911) 评论(0) 推荐(0) 编辑
摘要: 1. 解析详情页(是webView)遇到的3个问题: 1.图片太大,超出屏幕范围 2.怎么在webView上面添加一行文字 3.文字太小 1.解决方法 webView.scalesPageToFit =YES; 2.字符串拼接html代码 3.解决方法 设置代理 - (void)webViewDid 阅读全文
posted @ 2016-03-23 14:51 韦韦韦 阅读(429) 评论(0) 推荐(0) 编辑
摘要: 示例: @autoreleasepool { for (int i=0; i[largeNumber; i++) { (因识别问题,该行代码中尖括号改为方括号代替) Person *per = [[Person alloc] init]; [per autorelease]; } } 内存管理的原则 阅读全文
posted @ 2016-03-03 09:14 韦韦韦 阅读(131) 评论(0) 推荐(0) 编辑
摘要: RecommandViewController *recommandVC = [[RecommandViewController alloc]init]; if([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0){ recomm 阅读全文
posted @ 2016-02-20 16:04 韦韦韦 阅读(1709) 评论(1) 推荐(0) 编辑
摘要: ARC ARC 苹果版本的自动内存管理的编译时间特性。它代表了自动引用计数(Automatic Reference Counting)。也就是对于一个对象来说,只有在引用计数为0的情况下内存才会被释放。 Strong(强引用) 让我们从什么是强引用说起。它实质上就是普通的引用(指针等等),但是它的特 阅读全文
posted @ 2016-02-02 08:38 韦韦韦 阅读(346) 评论(0) 推荐(0) 编辑
摘要: + (NSAttributedString*)getAttributedStringFromHtmlString:(NSString*)htmlString{ return [[NSAttributedString alloc]initWithData:[htmlString dataUsin... 阅读全文
posted @ 2016-01-25 14:17 韦韦韦 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 一:第三方插件1:基于响应式编程思想的oc地址:https://github.com/ReactiveCocoa/ReactiveCocoa2:hud提示框地址:https://github.com/jdg/MBProgressHUD3:XML/HTML解析地址:https://github.com... 阅读全文
posted @ 2016-01-22 09:43 韦韦韦 阅读(218) 评论(0) 推荐(0) 编辑
摘要: $ mkdir -p $HOME/Software/ruby $ export GEM_HOME=$HOME/Software/ruby $ gem install cocoapods [...] 1 gem installed $ export PATH=$PATH:$HOME/Software/ruby/bin $ pod --version 0.38.2 阅读全文
posted @ 2016-01-20 14:52 韦韦韦 阅读(4912) 评论(0) 推荐(0) 编辑
摘要: 第一步,开启后台模式,选中定位,选择project --> capabilities-->Backgorund Modes --> Location updates 如图:Paste_Image.png第二步,在info.list 文件中添加如下配置:允许 http 请求 ,ios 9 之后需要添加... 阅读全文
posted @ 2016-01-16 16:08 韦韦韦 阅读(373) 评论(0) 推荐(0) 编辑
摘要: Swift语言使用var定义变量,但和别的语言不同,Swift里不会自动给变量赋初始值,也就是说变量不会有默认值,所以要求使用变量之前必须要对其初始化。如果在使用变量之前不进行初始化就会报错: var stringValue : String //error: variable 'stringVal 阅读全文
posted @ 2016-01-15 17:15 韦韦韦 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 在程序设计中,我们经常会使用懒加载,顾名思义,就是用到的时候再开辟空间,比如iOS开发中的最常用控件UITableView,实现数据源方法的时候,通常我们都会这样写Objective-C- (NSInteger)tableView:(UITableView *)tableView numberO... 阅读全文
posted @ 2016-01-15 13:51 韦韦韦 阅读(750) 评论(0) 推荐(0) 编辑
摘要: RESideMenu是github上比较出名的一个开源库,主要是实现侧滑菜单,现在有三千多个star了。效果如下。据说创意来源于dribbble的一个设计,还是比较好看的。感兴趣的可以去github上搜residemenu,地址就不贴了,选择这个开源库主要原因是带大家学习一下创建一个自定义的view... 阅读全文
posted @ 2016-01-14 09:11 韦韦韦 阅读(281) 评论(0) 推荐(0) 编辑
摘要: Swift and Objective-C in the Same Project在项目里交叉使用Swift和OCSwift与OC的兼容性使得你可以在项目里使用Swift+OC的方式编写应用程序,称为混合+匹配(mix and match),用这种方式可以一边使用享受新语言的快速特性,一边无缝的接合... 阅读全文
posted @ 2016-01-13 09:48 韦韦韦 阅读(692) 评论(0) 推荐(0) 编辑
摘要: 这其实是一个NSInvocation练习作业GitHub源码 vk_msgSend引子工作中难免会遇到一些场景,开发的时候不想引入整个头文件,但是又想调用一些方法动态创建,动态调用看起来比较酷这种使用场景确实不常见,导入了头文件最省事,最直接,但是这种方式我觉得能搞出很多好玩的东西一个群里聊天的时候... 阅读全文
posted @ 2016-01-11 11:28 韦韦韦 阅读(268) 评论(0) 推荐(0) 编辑
摘要: NSURLConnection在iOS9被宣布弃用,NSURLSession从13年发展到现在,终于迎来了它独步江湖的时代.NSURLSession是苹果在iOS7后为HTTP数据传输提供的一系列接口,比NSURLConnection强大,坑少,好用.今天从使用的角度介绍下.除了NSURLSessi... 阅读全文
posted @ 2016-01-08 15:35 韦韦韦 阅读(258) 评论(0) 推荐(0) 编辑
摘要: //富文本的使用 UILabel *testLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 100, 320, 30)]; testLabel.backgroundColor = [UIColor lightGrayColo... 阅读全文
posted @ 2016-01-05 16:42 韦韦韦 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 序猿题库是一个拥有数千万用户的创业公司,从20013年题库项目起步到2015年,团队保持了极高的生产效率,使我们的产品完成了五个大版本和数十个小版本的高速迭代。在如此快速的开发过程中,如何保证代码的质量,降低后期维护的成本,以及为项目越来越快的版本迭代速度提供支持,成为了我们关注的重要问题。这篇文章... 阅读全文
posted @ 2015-12-31 08:32 韦韦韦 阅读(661) 评论(0) 推荐(0) 编辑
摘要: 处理多并发和可重入性问题,是每个库发展过程中面临的比较困难的挑战之一。在Parse平台上,我们尽最大的努力保证你在使用我的SDKs时所做的操作都是线程安全的,保证不会出现性能问题。 在这篇文章中我们将会复习一些关于如何以简洁、安全、干净的方式处理多并发和竞争条件下的基本概念。 首先,在进入细节讨论之 阅读全文
posted @ 2015-12-29 08:58 韦韦韦 阅读(247) 评论(0) 推荐(0) 编辑
摘要: importFoundationpublicclassSwiftSingleton{varname="000"publicstaticletinstance=SwiftSingleton()//这个位置使用static,static修饰的变量会懒加载privateinit(){print("crea... 阅读全文
posted @ 2015-12-28 17:28 韦韦韦 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 1.define是宏定义,程序在预处理阶段将用define定义的内容进行了替换。因此程序运行时,常量表中并没有用define定义的常量,系统不为它分配内存。const定义的常量,在程序运行时在常量表中,系统为它分配内存。2.define定义的常量,预处理时只是直接进行了替换。所以编译时不能进行数据类... 阅读全文
posted @ 2015-12-28 14:11 韦韦韦 阅读(636) 评论(0) 推荐(0) 编辑
摘要: 之前做过的项目有需要通过音频口通信用方波来收发数据,由于这方面的资料比较少,下面就介绍下其原理,希望能给大家帮助。一. 音频通信简介大家应该都知道支付宝声波支付和拉卡拉吧,它们都是利用手机的音频口(手机耳机口)来实现全双工的通信(手机与设备之间的双向通信)。其优点是低成本,编码芯片成本低,手机的 3... 阅读全文
posted @ 2015-12-28 11:20 韦韦韦 阅读(1292) 评论(0) 推荐(0) 编辑
摘要: CABasicAnimation animationWithKeyPath TypesWhen using the ‘CABasicAnimation’ from the QuartzCore Framework in Objective-C, you have to specify an anim... 阅读全文
posted @ 2015-12-28 10:51 韦韦韦 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件(也有例外,比如系统通讯录能在用户授权的情况下被第三方应用访问),这个规则把iOS系统的封闭性展现的淋漓尽致。一、沙盒中几个主要的目录每个沙盒下面都有相似的目录结构,如下图所示(出自苹果官方文档):每个应用的沙盒目录都是相... 阅读全文
posted @ 2015-12-28 09:37 韦韦韦 阅读(409) 评论(0) 推荐(0) 编辑
摘要: Model层:数据持久化存储方案有哪些?沙盒的目录结构是怎样的?各自一般用于什么场合?SQL语句问题:inner join、left join、right join的区别是什么?SQLite的优化网络通信用过哪些方式(100%的人说了AFNetworking...)如何处理多个网络请求并发的情况在网... 阅读全文
posted @ 2015-12-28 09:10 韦韦韦 阅读(689) 评论(0) 推荐(0) 编辑
摘要: 下面是文章补充 从面向对象到Objective-C概览copy 面向对象: In object-oriented programming, object copying is creating a copy of an existing object, a unit of data in objec 阅读全文
posted @ 2015-12-23 17:01 韦韦韦 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 许多升级了OSX 10.11的朋友在配置class-dump的时候,会发现书上推荐的class-dump存放目录/usr/bin不再可写,如下所示:192:~ snakeninny$ touch class-dump /usr/bintouch: /usr/bin: Operation not pe... 阅读全文
posted @ 2015-12-22 16:00 韦韦韦 阅读(833) 评论(0) 推荐(0) 编辑
摘要: 我们在开发过程中,经常会遇到有些页面不止一个网络请求,有时候需要两个三个甚至更多,这个时候我们就需要队列请求,下边是GET请求的多个请求放在队列里边:[objc]view plaincopyprint?NSURL*url=[NSURLURLWithString:@"http://www.baidu.... 阅读全文
posted @ 2015-12-17 10:25 韦韦韦 阅读(660) 评论(0) 推荐(0) 编辑
摘要: 在iOS开发中,经常用到宏定义,或用const修饰一些数据类型,经常有开发者不知怎么正确使用,导致项目中乱用宏与const修饰你能区分下面的吗?知道什么时候用吗?#define HSCoder @"汉斯哈哈哈"NSString *HSCoder = @"汉斯哈哈哈";extern NSString ... 阅读全文
posted @ 2015-12-15 16:57 韦韦韦 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 在WWDC 2015上,Apple谈了Swift中面向协议编程的话题,令人深思。在那之后,好像每个人都在讨论关于协议扩展的话题,这个新的语言特性使每个人都有所困惑。我阅读了许多关于Swift中协议的文章,了解过了协议扩展(protocol extensions)的详情。毫无疑问,协议扩展将是Swif... 阅读全文
posted @ 2015-12-08 13:55 韦韦韦 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 基础知识:1、HTML + CSS 这部分建议在W3school 在线教程上学习,边学边练,每章后还有小测试。 之后可以模仿一些网站做些页面。在实践中积累了一些经验后,可以系统的读一两本书,推荐《Head First HTML 与 CSS 中文版》,这本书讲的太细了,我没能拿出耐心细读。你可以根据情... 阅读全文
posted @ 2015-11-27 10:46 韦韦韦 阅读(244) 评论(0) 推荐(0) 编辑
摘要: weak情况1234@property (weak,nonatomic) UILabel *nameLabel;UILabel *nameLabel = [[UILabel alloc] init];self.nameLabel = nameLabel; strong情况123456789@prop... 阅读全文
posted @ 2015-11-23 10:29 韦韦韦 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 需要使用弱引用的 三种情况: 1. 如果这个block不被持有,那么你完全没有必要使用__weak 2. 如果被持有了,那么__weak是必然的 3. 如果在多线程并发的情况下,不仅要使用__weak,而且在该子线程内部要主要对weakSelf进行__strong加强引用(防止资源被提前释放造成cr... 阅读全文
posted @ 2015-11-23 10:21 韦韦韦 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 3D Touch的主要应用文档给出的应用介绍主要有两块:1.A user can now press your Home screen icon to immediately access functionality provided by your app.2.Within your app, a... 阅读全文
posted @ 2015-11-21 16:59 韦韦韦 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 1. 先写plist配置文件plist写到resouce里面去通过NSBundle把数据取plist读出来2. 通过NSClassFromString创建类NSClassFromStringNSSelectorFromString正常来说,id myObj = [[NSClassFromString... 阅读全文
posted @ 2015-11-21 15:39 韦韦韦 阅读(187) 评论(0) 推荐(0) 编辑