自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 iOS应用性能优化备忘录

UITableView在 cellForRowAtIndexPath 中使用 dequeueReusableCellWithIdentifier 来重用 Cell,而不是使用 UITableViewCell 来新建 Cell当你的 Cell 里需加载网络图片的话,采用异步方式(如直接使用 SDWebImage ),而不是同步方式,且先放置默认图片,取得网络数据后更新,是比较好的方式如果你的单个

2015-11-06 19:37:12 937

原创 iOS 获取屏幕分辨率大小错误的解决方法

这段时间在自己在模仿做知乎日报2.0结果真机调试的时候发现屏幕尺寸有问题出现了上下两条黑边.. 而在模拟器中是正常的我在didFinishLaunching中输出UIScreen.mainScreen().bounds的值发现是这样..老子用的明明是肾6,你给我个4的尺寸..而且同时我发现我设置的LaunchImage不见了,便猜测是LaunchImag

2015-10-07 11:56:48 2767

原创 UITableViewCell的展开与收缩功能实现分析

前几天看到一份实现了TableViewCell收缩展开的源码,感觉实现方式很独特,对以后我做其他效果也算是提供了一种新思路,特此记录下来。他通过代码内更改约束的优先级来实现不同布局。图中可以看到,他在Cell的ContentView里面放了一个ContainerView,并令Label的边界与ContainerView的边界重合,而且我们需要知道的是,Label的Verti

2015-09-30 11:02:58 4184 1

原创 Cannot read property 'root' of null 解决方法

Cannot read property 'root' of null 解决方法

2015-09-28 20:19:04 15502 3

原创 UI高度可定制化KxMenu弹出菜单

UI高度可定制化KxMenu弹出菜单

2015-09-25 21:41:43 2682

原创 ScrollView无限循环实现思路

思路:一:用CollectionView以及与CollectionView一样大的Cell来实现二:CollectionView的pagingEnable设置为true(设置后ScrollView会在subview的边界停止)三:在返回Cell数量的代理方法里返回的数量为图片数量*100,初始位置设置为中间四:indexPath对图片数量取百分号来得到相应的图片内容潜在

2015-09-23 10:31:10 1313

翻译 以 Swift 的方式思考,第二部分:调用数组的 Map 方法

在本系列文章的第一篇中,我们知道了怎样避免对可选类型强制拆包,尽量少使用 ! 也避免了程序崩溃。在第二部分,我将会精简我们的代码来让它看起来更 “Swift”,同时向你介绍 map() 和 flatMap() 方法。 今天这篇文章我们将要讨论数组的 map() 和 flatMap() 方法。本系列文章的第一篇里这是我们上次留下的代码。class ListItem { var icon:

2015-09-22 20:34:14 2416

原创 iOS开发推送本地通知

一、LocalNotification的注册和处理。要使用本地通知功能你需要现在AppDelegate中进行注册,声明通知的类型和相应的Action(如果有的话),代码如下: func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObje

2015-09-20 12:03:05 800

原创 Swift中创建单例的方法

class TodoList { class var sharedInstance : TodoList { struct Static { static let instance : TodoList = TodoList() } return Static.instance }}这是Swift1.2之前单

2015-09-19 20:03:04 692

原创 给UITextView添加PlaceHolder

先上图:上面UITextField的PlaceHolder是自带的,下面的是我的UITextView,实现很简单,textView背景clearColor,后面放个label(希望你知道怎么在Storyboard里面设置哪个View在前面),然后根据textView的delegate调整label是否显示出来。我主要说几个参数,没按顺序,看完再做 newM

2015-09-13 16:26:37 986

翻译 Swift 2.0 try? 的替代方法

try? 语法的优点在于你不必把可能会抛出错误的函数写在一个 do-catch 代码块当中。如果你使用了 try?,该函数的返回值就会是一个可选类型:成功返回 .Some,失败则返回 .None。你可以配合着 if-let 或者 guard 语句来使用 try? 语法。try? 语法的不足则在于它对错误的简化,让你难以了解到错误是什么以及错误发生的时间。这可不是件好事。

2015-09-13 15:03:52 1408

原创 iOS开发中headerView Parallax的实现方法

首先上效果图改自这个库的代码,主要是为了实现上图中tableHeaderView的视差效果关键代码如下:- (void)initialSetupForCustomSubView:(UIView *)subView{ //初始化中间层imageScrollView UIScrollView *scrollView = [[UIScrollView alloc]

2015-09-11 22:05:40 1844

原创 iOS开发中Touch ID的使用

从2013年的iPhone 5s开始苹果就引入了Touch ID,之后Touch ID基本上成了苹果设备的标配,iOS 8起,开发者就可以调用API在自己的应用中添加Touch ID验证功能了,国内常见的第三方应用比如支付宝,也逐渐引入了对Touch ID的支持。接下来我将讲一下怎样在自己的应用中添加对Touch ID的支持。

2015-09-07 18:51:03 968

原创 iOS开发中ViewController切换动画的制作

在iOS开发中,ViewController之间的切换是必不可少的,而系统只提供了Modal、Push、Popover等几种基本的切换方式,往往不能满足我们开发中的需求,最近正好看到了一篇关于这部分动画制作的文章,便决定提炼要点做一下总结,以备不时之需ViewController之间的切换分为interactive和non-interactive,iOS7当中左划返回就是极好的inte

2015-09-06 18:03:09 956

原创 将UINavigationBar设置为全透明的两种方法

实现UINavigationBar的全透明是实现动态改变导航栏颜色的前提,我找到了两种方法来实现这种效果第一种self.navigationController?.navigationBarHidden = true第二种方法我找了好久,今天才知道我尝试过设置 self.navigationController?.navigationBar.barTintColor =

2015-09-02 20:27:29 7382

原创 给自己的总结

写博客整两个月了,在写博客的过程中我学到了不少东西,最重要的一点是,如果我要写点什么出来,我就必须先要搞懂它,而且也确实方便了自己以后的查阅.. 再过几天就要启程去学校了,开学马上大三,还有CCF要考,最近的时间都花在了iOS开发上,但却一直没有弥补自己在算法和数据结构方面的不足,但要想在毕业后拿到一个理想的offer以及以后的职业发展过程中,有一个良好的算法和数据结构基础也是件很重要的事,所

2015-08-31 20:25:50 741

原创 iOS不同应用切换中URL Scheme的使用介绍

URL Scheme是iOS SDK提供给开发者的通过URL打开系统或第三方应用的方式,iOS开发中常见的几种需求,比如分享到微信微博,或调用支付宝支付之类的调用其他应用,以及调用完后,第三方应用对自己的回调都需要用到URL Scheme的知识,关于URL Scheme有这么几点需要了解一、怎么通过一个应用的URL Scheme打开对应应用的对应页面

2015-08-29 08:34:33 5007 3

转载 NSNotification、delegate和KVO的区别

1.效率肯定是delegate比nsnotification高。2. delegate方法比notification更加直接,最典型的特征是,delegate方法往往需要关注返回值, 也就是delegate方法的结果。比如-windowShouldClose:,需要关心返回的是yes还是no。所以delegate方法往往包含 should这个很传神的词。也就是好比你做我的delegate,我会

2015-08-25 17:51:25 670

原创 Swift下拉菜单动画实现

学iOS开发时间也不短了,但对CoreGraphics自定义动画这块一直都不算太熟练,一是因为默认动画可以在一定程度上满足需求,二也是因为自定义动画这块的第三方库相当多,我也一直没有重复造轮子,但前几天在AppCoda上看到一篇关于自定义动画Demo的文章,觉得还不错,认真研读一下也当弥补自己知识面的漏洞了

2015-08-25 10:23:55 4641

原创 Swift版知乎日报

Swift编写、Xcode7 beta5 iPhone6模拟器以及真机调试通过用到了Alamofire、SwiftyJSON、SDWebImage只做了首页新闻展示、顶部图片轮播和文章内容展示,左划菜单还有点赞查看评论什么的没做..github地址:https://github.com/zpz1237/NirZhihuNewsSwift编写、

2015-08-23 10:25:25 1680

转载 基于Swift语言开发微信、QQ和微博的SSO授权登录代码分析

一,总体架构1,引入第三方库除了必须引入对应的登录SDK外,额外引入了SDWebImage,SVProgressHUD,看名字大家都明白吧,引入登录SDK请各自看官方的开发文档,需要加入什么系统库文件,需要配置Other Linker Flags 等,请参考各自官方文档即可;2,配置连接桥文件因为创建的工程是基于Swift语言,目前官方SDK和其它三方库都是用OC写的,所以为了在s

2015-08-20 08:59:33 3114

原创 Swift环境下实现UILabel居上 居中 居下对齐

首先在Xcode中新建.h文件,将以下代码复制进去//// myUILabel.h// //// Created by yexiaozi_007 on 3/4/13.// Copyright (c) 2013 yexiaozi_007. All rights reserved.//#import typedef enum{ VerticalAlignment

2015-08-17 09:14:53 8348

原创 UINavigationBar的系统渲染方式

昨天想手工实现一下类知乎日报的Navigation Bar的动态颜色改变,但无论怎么设置Navigation Bar的 backgroundColor barTintColor alpha参数都达不到想要的效果,所以就试了试用View Debugging来分析一下系统Navigation Bar的渲染层次,以达到动态改变NavigationBar的背景颜色的功能

2015-08-14 09:21:31 3778

转载 Swift ARC-自动引用计数、内存管理

作者:fengsh998原文地址:http://blog.csdn.net/fengsh998/article/details/31824179Swift使用自动引用计数(ARC)来管理应用程序的内存使用。这表示内存管理已经是Swift的一部分,在大多数情况下,你并不需要考虑内存的管理。当实例并不再被需要时,ARC会自动释放这些实例所使用的内存。另外需要注意的:

2015-08-11 09:08:20 865

原创 iOS中的GCD多线程

GCD为Grand Central Dispatch的缩写Grand Central Dispatch (GCD)是Apple开发的一个多核编程的较新的解决方法。它主要用于优化应用程序以支持多核处理器以及其他对称多处理系统。它是一个在线程池模式的基础上执行的并行任务。GCD提供给我们一个简易使用的并发模型,通过推迟昂贵的计算任务来提高应用的响应性能

2015-08-08 09:42:00 1609

转载 TCP/IP Socket HTTP

网络由下往上分为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层,三者从本质上来说没有可比性,socket则是对TCP/IP协议的封装和应用(程序员层面上)。也可以说,TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层

2015-08-05 23:18:44 800

原创 iOS网络库Alamofire内部实现初探

一、Making a RequestAlamofire.request(.GET, URLString: "http://httpbin.org/get")该方法调用了Alamofire.swift中的publicfunc request(method: Method, URLString:URLStrin

2015-08-04 08:24:02 2241

原创 JavaScript学习要点(十三)

最简单的JSON数据形式就是简单值,字符串必须使用双引号JSON与JS的对象字面量相比,首先没有声明变量,其次没有末尾的分号,对象的属性必须加双引号,属性的值可以是简单值,也可以是复杂类型的值JSON数组采用的就是JS中的数组字面量形式,但没有变量和分号,数组可以与对象组合起来构成更复杂的数据集合JSON对象有两个方法:stringify()和parse()分别

2015-08-01 17:03:56 594

原创 JavaScript学习要点(十二)

XDM跨文档消息传送指的是在来自不同域的页面间传递消息,其核心是postMessage()方法该方法接收两个参数:一条消息和表示消息接收方来自哪个域的字符串var iframeWindow = document.getElementById(“myframe”).contentWindow;iframeWindow.postMessage(“A secret”, “http:/

2015-07-31 21:30:04 626

原创 HTTP学习要点(三)

网关可以作为某种翻译器使用,它抽象出了一种能够达到资源的方法,是资源和应用程序之间的粘合剂,有些网关会自动将HTTP流量转换为其他协议协议网关应用于不同协议流量之间的转化资源网关接受网络请求并将其发送给运行在服务器上的应用程序第一个流行的应用程序网关API就是CGI,它是一个标准接口集,Web服务器可以用它来装载程序以响应特定URL的HTTP请求,并

2015-07-30 19:39:42 575

原创 JavaScript学习要点(十一)

IE中采用事件冒泡来控制事件流,即事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的节点Netscape团队提出的另一种事件流叫做事件捕获,即不太具体的节点应该更早的接收到事件,而最具体的节点应该最后接收到事件DOM事件流规定包括三个阶段,事件捕获阶段、处于目标阶段和事件冒泡阶段,最后一个阶段对事件做出响应处理事件的函数被叫做事件处理程序,名称以“on

2015-07-29 11:20:59 557

原创 HTTP学习要点(二)

世界上几乎所有的HTTP通信都由TCP/IP承载,是一种常用的分组交换网络分层协议集,是可靠的HTTP连接实际上就是TCP连接和一些使用连接的规则TCP为HTTP提供了一条可靠的比特传输管道,通过名为IP分组的小数据块发送,HTTP是HTTP over TCP over IP这个协议栈的顶层,其安全版本HTTPS就是在HTTP和TCP之间插入了一个成为TLS或SSL的密码加密层

2015-07-28 19:58:04 557

原创 JavaScript学习要点(十)

众多JS库中最常用的一项功能就是通过CSS选择符查询DOM文档取得元素的引用,从而抛弃了getElementById()和getElementByName()querySelector()方法接收一个CSS选择符,返回与该模式匹配的第一个元素,没找到则返回Null//取得类为”button”的第一个图像元素var img = document.bod

2015-07-27 20:38:44 600

原创 HTTP学习要点(一)

HTTP会给每种要通过Web传输的对象打上名为MIME的数据格式标签MIME类型是一种文本标记,表示一种主要的对象类型和特定的子类型,中间由一条斜杠来分隔每个Web服务器资源都有一个名字,被称为URI,在世界范围内唯一标识并定位信息资源,URI有两种形式,分别称为URL和URNURL精确的说明了某资源的位置以及如何去访问它,第一部分被称为

2015-07-26 09:05:35 648

原创 JavaScript学习要点(九)

对于客户端检测的态度:先设计最通用的方案,然后再使用特定于浏览器的技术增强该方案Dom(文档对象模型)是针对HTML和XML文档的一个APIDom描绘了一个层次化的节点树,允许开发人员添加、移除和修改页面的某一部分JS中所有的节点类型都继承自Node类型,因此所有的节点类型都共享着相同的基本属性和方法每个node的nodeType

2015-07-25 09:46:08 575

原创 JavaScript学习要点(八)

采用alert()、confirm()、prompt()方法可以调用系统对话框向用户展示消息confirm()对话框会有OK和Cancel两个按钮,OK返回true,Cancel返回falseprompt()会生成一个提示框,提示用户输入文本,有OK和Cancel,选择OK返回输入内容,选择其他的返回Nulllocation对象用来返回当前窗口中加载文档的有关信

2015-07-24 09:11:48 633

原创 JavaScript学习要点(七)

BOM的核心对象是window,表示浏览器的一个实例,在ECMAScript中是规定的Global对象所有在全局作用域中声明的变量函数都会变成Window的属性和方法定义全局变量不能通过delete删除,但是在window上定义的可以被删除top对象始终指向最高层框架,parent对象指向父框架获得窗口左侧和上侧的位置var leftPos = 

2015-07-23 18:43:27 620

原创 JavaScript学习要点(六)

函数声明提升代表执行代码前会先读取函数声明但函数表达式并不会被提前读取编写递归函数时使用arguments.callee比使用函数名更保险,在严格模式下不能通过脚本访问arguements.callee,可以使用命名函数表达式来达成相同的结果var factorial  = (function f(num){     if (nu

2015-07-22 20:25:25 505

原创 JavaScript学习要点(五)

使用构造函数继承是在子类型中调用父类型的构造函数,其问题是函数无法复用组合继承将原型链和借用构造函数继承技术组合,使用原型链实现对原型属性和方法的继承,借用构造函数实现对实例属性的继承原型式继承基于已有的对象创建新对象,同时不必因此创建自定义类型,相当于对已有的对象进行了浅复制,某些属性会被共享Object.create()函数可用来做原型式继承,第一个

2015-07-21 20:45:31 540

原创 JavaScript学习要点(四)

function hasPrototypeProperty(object, name){     return !object.hasOwnProperty(name)&&(name in object)}//用来判断是否是原型中的变量先前创建的实例,修改原型后,实例能马上得到原型方法,但重写整个原型后,实例中的指针指向的却还仍然是先前的原型

2015-07-20 15:34:31 635

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除