- 博客(73)
- 资源 (17)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 不错的iOS相关的主页或网站 (更新于14-06-22)
最近一直没事在翻一些网站看看资料学习下。推荐几个不错的网站:http://www.raywenderlich.com/ 这个网站有各种各样的教程,可惜是大部分都是英文教程,不过阅读起来还好。每到iOS有新版本发布时也会出专题的教程书籍。http://objccn.io/ 这个是一个项目组专门翻译objcio英文文章而建的主页。翻译的内容都很棒。http://nships
2014-05-21 22:54:39
1683
1
原创 iOS小米遥控器的手势监听及UI实现
这篇文章通过实例实现了一个类似小米手势遥控器的功能页面。效果图如下所示:触摸事件的响应通过对系统的触摸实践监听来进行。通过一个数组来对点的集合进行缓存和分析。- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ if (!self.allowsIn
2014-09-23 23:07:30
1760
原创 Swift的可选链,类型转换和扩展
可选链(Optional Chaining)可选链是一种请求或调用属性,方法,子脚本的过程。可选性体现于请求或调用的目标当前可能为nil.若不为nil则成功调用,否则返回nil并将链失效。
2014-07-22 23:28:01
1505
原创 Swift的构造和析构过程
构造过程Swift的构造过程通过定义构造器来实现。不过与Objective-C不同的是,Swift的构造器不需要返回值,同样也不需要表明Func。另外值得提的是,当构造器中为存储型属性赋值时,不会触发属性观测器。定制化的构造过程1. 除了默认的构造器外,我们可以通过增加参数的方式来为其添加自定义的构造函数或者叫便捷构造器(covenience i
2014-07-11 22:16:00
1695
原创 使用Swift和SpriteKit写一个忍者游戏
这篇文章的游戏使用SpriteKit和Swift语言来完成。SpriteKit是苹果自己的游戏引擎,更能贴合iOS系统底层的API,不过架构和实现上都是模仿了Cocos2D。所以使用上其实差别不大,不过SpriteKit更轻量级一些。程序入口main函数跟OC一样,将入口指向了appdelegate,而cocoa touch框架几乎跟OC一样,只不过用Swift重写了一
2014-07-06 22:05:14
3637
1
原创 Swift的属性,方法,下标脚本以及继承
从这篇章节起,Swift编程语言指南大部分的重要内容在于概念,代码并不是太多。理解Swift的面向对象理念,语法以及类结构,构造析构过程对于很好的应用Swift语言将会有比较大的帮助。属性存储属性存储属性通常是那些可以通过直接赋值,或者直接访问成员能够获得的属性类型。它有些要注意的地方:若一个结构体被声明为常量,则子属性无法被修改了。在Objective-C中,我们总是
2014-07-03 21:10:13
1676
原创 Swift的闭包,枚举,类和结构体
闭包(Closures)使用过其他语言的应该对代码块并不陌生,Swift中的闭包与C,OC中的Block相似。表示自包含的函数代码块,可以在代码中传递和使用。并且可以捕获和存储上下文的变量以及常量值,Swift会为你进行捕获相关的内存操作。上一篇文章提到的函数,也是一种特殊的闭包,具体在:全局函数是有名字但是不会捕获任何值的闭包。嵌套函数是有名字且可
2014-06-25 23:36:34
1763
原创 Swift的流程控制和函数
流程控制(Control Flow)For循环for循环和C语言,OC用法很相像,通常有for()和 for in两种。遍历时可以利用下划线"_"忽略对值的访问等。Switchswitch在Swift中则显得灵活的多,不过需要注意的是,不同于C语言,Swift中的Switch不存在隐式的贯穿,每个case里的表达式后面不需要写break则
2014-06-22 22:43:39
1281
原创 Swift的基础,操作符,字符串和集合类型
这篇文章主要讲解苹果Swift官方指南的第二章前四节的要点内容,如果想看完整的英文文档可以去苹果开发者页面下载。Basic声明常量let声明变量var注释依旧使用"//" "/**/", 注意这里"/**/"在Swift可以嵌套使用表达式结尾不再有分号整数你可以声明为Int或者UInt,他们本身适应不同平台(64位, 32位),类似于NSInte
2014-06-05 10:49:52
2265
原创 现代的新语言--Swift初探
新的语言WWDC简短的介绍,新的语言Swift就问世了,虽然新语言的名字导致贴吧下歌手粉丝和开发者们争抢地盘- -,不过雨燕就是这么来了。WWDC keynote里给Swift打上了很多标签:Closures,Generics,Namespaces,Type inference,Multiple return types闭包,泛型支持,支持命名空间,去除隐式
2014-06-03 23:54:46
2387
原创 UIImage常用的分类
有些时候经常需要对系统本有的类方法进行扩充,于是可能需要对类采用继承或者分类的方式来实现需要。最近写的一个项目用到了一些对图片进行处理的一些扩充方法。涉及到的方法:比较常用的类似于拉伸图片,拼接图片名称或者以颜色生成图片等。拼接图片名称:+ (UIImage *)imageMatchSizeWithName:(NSString *)imageNa
2014-01-20 22:15:16
2684
1
原创 【iOS】用Layer创建一个三维模型以及拖动
关于CALayer的介绍以及基本属性,在这篇博客中有交代:CoreAnimation —— CALayer这篇博客讲述简单的通过对layer的transform属性的设置一个CATransform3D来进行自定义三维图形,甚至后续的处理。通常简单的仿射变换我们也是通过对其的transform属性进行设置。不过这里设置的是一个3D变换类。如果线性代数很好的话,那应该能够理解内部具体做
2013-12-16 00:11:38
3430
原创 CoreImage的使用及常见滤镜工具(一)
概述:CoreImage是一个图像框架,它基于OpenGL顶层创建,底层则用着色器来处理图像,这意味着它利用了GPU基于硬件加速来处理图像。CoreImage中有很多滤镜,它们能够一次给予一张图像或者视频帧多种视觉效果。而且滤镜可以连接起来组成一个滤镜链,把滤镜效果叠加起来处理图像。CoreImage框架最早出现于iOS5,iOS6也对这个框架进行了扩展,这篇博客的Demo是基于iOS7的
2013-12-05 00:28:00
6747
2
转载 动态语言,别再说不
看到篇好文章,转下。永远都要从基于语言优势设计产品的思路考虑问题,而不仅仅拘泥于语言的某个缺点不放。相信很多人都听过一个禅宗故事,说是两个僧人赶路,趟过一条小河的时候,看到一个漂亮的少妇困于其中,向他们呼救。其中一个有心施以援手,但想到佛家的色戒,便犹豫起来,不知如何是好。可另一个和尚却大大咧咧地冲过去,抱起少妇,趟过小河。于是前者的心里就很不舒服,一路上闷闷不语,后来实在忍不住,就问
2013-12-01 19:25:32
1357
原创 IOS中常见的Operation —— NSOperation
NSOperation在应用需要进行异步处理时,我们需要选择一下异步处理的方式,GCD通常是一个不错得选择,但是也许需要更加面向对象的方式,那么就会使用NSOperation队列,队列中需要执行的操作代码放在NSOperation的子类中。子类将操作的数据和待执行的代码封装起来加入到队列中。NSOperation类是一个抽象类。其两个子类为:NSInvocationOper
2013-11-06 22:35:54
2681
原创 常见的排序算法
最近由于手上有两个项目要写,没有时间构思和写博客= =。最近属于校招季,计算机原理,算法和数据结构,c语言基础属于最重要的。这里把常考到的常用排序算法简单汇总了下。包括冒泡排序,简单选择排序,直接插入排序,希尔排序,堆排序和快速排序。//常用排序汇总#include void swap(int *a, int *b);void bubble_sort(in
2013-10-21 23:58:32
1439
原创 为什么寄存器比内存快?
原文出处: Mike Ash 译文出处: 阮一峰计算机的存储层次(memory hierarchy)之中,寄存器(register)最快,内存其次,最慢的是硬盘。同样都是晶体管存储设备,为什么寄存器比内存快呢?Mike Ash写了一篇很好的解释,非常通俗地回答了这个问题,有助于加深对硬件的理解。下面就是我的简单翻译。原
2013-10-15 20:54:21
2093
原创 百度2014移动研发笔试题目——1013清华版
一.简答题1.简述计算机的存储系统分为哪几个层次,为什么这样的分层能够提高程序的执行效率。2.浮点数在计算中如何表示,如何对浮点数判等。3.简述TCP与UDP协议的差别,两者与HTTP的关系。并列举HTTP的方法,以及常见的返回状态码。二.算法与程序设计1.设计一个反转字符串的函数 char *reverse_str(char *str),不使用系统函数
2013-10-14 00:32:53
11945
1
原创 IOS仿网易新闻客户端左右侧栏
左右侧栏已经是当前APP最流行的布局,很多客户端软件都使用了左右侧栏,例如网易新闻,人人网,Weico等等。这篇博客以当前网易新闻客户端的模式为例仿写了一个左右侧栏架构实现。先看一下Demo的实现效果 实现主要思路以及细节:视图控制器有三个视图按不同层次排列,最上层的是主要显示视图_mainContentView,下面的为左右侧栏视图;点击左侧栏不同
2013-10-11 00:12:43
5856
6
原创 IOS飞机大战OC版
前一阵子看到了很多版本的打飞机游戏,有Java版的C++版本的还有C语言版的。。。这几天闲着的时候写了一个OC版的,也正好是因为答应朋友写这个游戏来把飞机都换成他照片- -。没有用Cocos2d框架,用的QuartzCore中的CADisplayLink来完成。先看下完成后的效果 简单的架构思路设计如下:图片资源与音乐资
2013-10-08 00:18:45
3789
1
原创 IOS详解TableView——选项抽屉(天猫商品列表)
在之前的有篇文章讲述了利用HeaderView来写类似QQ好友列表的表视图。这里写的天猫抽屉其实也可以用该方法实现,具体到细节每个人也有所不同。这里采用的是点击cell对cell进行运动处理以展开“抽屉”。最后完成的效果大概是这个样子。主要的环节:点击将可视的Cell动画弹开。其他的Cell覆盖一层半透明视图,将视线焦点集中在弹出来的商品细分类别中。再次点击
2013-09-26 00:31:48
7334
5
转载 ARM相关知识
ARM7采用冯·诺依曼(Von-Neumann)结构,数据存储器和程序存储器重合在一起。 同时,此结构也被大多数计算机所采用。ARM7为三级流水线结构(取指,译码,执行),平均功耗为0.6mW/MHz,时钟速度为66MHz,每条指令平均执行1.9个时钟周期ARM7系列微处理器包括如下几种类型的核:ARM7TDMI、ARM7TDMI-S、 ARM720T、ARM7EJARM7采用
2013-09-22 16:43:12
1206
原创 IOS回调机制——代理,通知中心以及Block
Xcode5.0正式版IOS7和Xcode5正式版在昨天正式可以下载。IOS7不多说了,交互设计,界面风格,操作的简化程度都属于比较领先的水平。这里来说说Xcode5正式版,和以前的Xcode5测试版来比,正式版改动不大,不过也有稍许变化。整体来讲,跟Xcode4.6比,属于换了一个时代- -(因为以前的工程换到这里编译需要改很多地方)Xcode5给我的感觉就是:界
2013-09-21 01:09:52
8794
5
原创 IOS详解TableView——静态表格使用以及控制器间通讯
一个Demo 通过使用静态表格来完成个人资料增加编辑以及搜索。不过通常我们会使用更灵活的Group风格表视图来完成。上篇文章简单的介绍了一下搜索框的使用。这里给其加入数据来说明。先看下效果主要涉及到三个页面,列表页面,显示信息页面,以及添加/编辑界面。主要解决的就是试图控制器间的数据通讯问题,以及在搜索表格点击后更改数据同样能进行正确地传递。这里的数据通讯采
2013-09-19 01:00:59
7465
原创 IOS详解TableView——内置刷新,EGO,以及搜索显示控制器
这几天因为住的地方的网出了一点问题,除了能上Q,上微博以外其他的网页全都无法登陆。博客也就没有跟进。今天恢复了,所以继续更新博客。也希望大家能继续评论或私自给我一些建议或者交流:-)今天找到了以前一个TableView的例子,主要关于上下拉刷新的,所以写了一个demo,然后更新到博客上来。内置刷新内置刷新是苹果IOS6以后才推出的一个API,主要是针对Tab
2013-09-17 00:22:39
12741
原创 IOS详解TableView——实现九宫格效果
根据需求九宫格的效果可以有很多种。这里写了一个在UITableView上显示九宫格效果的Demo。思路:在Cell上初始化自定义过得按钮,根据预设的每行按钮个数来决定他们在Cell上的位置。然后响应点击事件即可。整体实现不是很难,细节上注意一下即可。搭建界面数据,图片来自于天猫客户端的一些资源图片,然后还是以属性字典的方式读取提前设定的数据。
2013-09-12 00:42:38
8878
5
原创 IOS详解TableView——对话聊天布局的实现
上篇博客介绍了如何使用UITableView实现类似QQ的好友界面布局。这篇讲述如何利用自定义单元格来实现聊天界面的布局。借助单元格实现聊天布局难度不大,主要要解决的问题有两个:1.自己和其他人说话头像和气泡图像在不同的位置。找了些类似的例子,有根据不同情况设置不同的自定义类的。这里使用根据说话人的属性来设置不同的位置,在一个单一的单元格类中。2.像微博等根据说话的
2013-09-09 16:30:31
6528
5
原创 IOS详解TableView —— QQ好友列表的实现
上篇博客写了关于性能优化以及手工绘制自定义单元格内容,这篇我们利用TableView的Section的Header来实现类似QQ好友列表的效果。TableView有一个代理方法这个方法返回一个UIView对象,我们可以将一个Button对象设为这个Section的Header,在点击它的时候展开列表内容。简单地看下假的好友列表数据一个
2013-09-08 20:03:14
5401
2
原创 IOS详解TableView——性能优化及手工绘制UITableViewCell
提高表视图的性能UITableView作为应用中最常用的视图,它的性能优化问题几乎是经常提及。下面对在非网络访问情况下的表视图性能优化进行了主要的几点说明:1.自定义类或XIB文件时在系统提供的样式不能满足我们的时候,我们经常会创建自定义类或者XIB文件来自定义单元格样式。在之前,我们通常通过loadNib的方式或者在代理方法中继续使用老的方法来设置重用,管
2013-09-06 01:37:37
9694
6
原创 IOS中的各种Picker
简述在应用的一些设置中经常要用到一些Picker来快速帮助用户选定取值,一般会用到的有UIDatePicker,UIPickerView以及UIImagePickerController。初始界面如图,在搭建好的界面,实现方法来完成各个选择。首先是日期选择UIDatePicker主要需要设置的属性有localeda
2013-09-05 02:15:25
1986
原创 网络编程——XML与JSON
概述如上篇博客点击打开链接介绍。互联网公司发布Web服务,于是开发者们就可以将其用到自己的应用中。Web服务的工作方式类似于浏览器,输入请求,按下回车,等待远程计算机响应。当响应返回时,浏览器会使用响应中的规划与内容显示网页。Web服务的工作方式也与其相同,只不过是由应用发送请求。互联网公司会尽可能的通过标准格式来规划Web服务的请求与响应,是应用能够更轻松地使用他们的服务。Web
2013-09-02 16:39:49
2303
原创 IOS网络编程基础——GET 以及 POST
HTTP和HTTPSInternet的基本协议是TCP/IP协议,广泛采用的是建立在TCP/IP协议上的应用层协议,比如HTTP,HTTPS,FTP等等。不同的协议对应不同的应用。WebService主要使用的是超文本传输协议,也就是HTTP协议。他属于一个应用层的面向对象的协议。而HTTPS则在HTTP下加入SSL安全层。GET请求
2013-09-01 00:44:32
8340
2
原创 核心动画中的动画组和转场动画
动画组 CAAnimationGroup上篇博客http://blog.csdn.net/cocoarannie/article/details/10413301介绍了核心动画中的基本动画(CABasicAnimation)和关键帧动画(CAKeyframeAnimation),还有一个比较常用的就是动画组(CAAnimationGroup)所谓的动画组就是讲一些动画组合起
2013-08-30 00:19:28
2737
原创 CAAnimation——基本动画,关键帧动画和贝塞尔路径
概述在做对于图层的动画效果时,往往直接改变属性或者使用隐式动画是不能满足我们的需求的,所以我们就用到了显式动画,CAAnimation。它可以管理重复动画、准确的控制时间和步调,并且能设定图层过渡。当然,所有隐式动画能做到的,显式动画也都能做到。来看下CAAnimation的继承体系CABasicAnimation- (void)de
2013-08-27 19:39:10
10513
原创 CoreAnimation —— CALayer
概述如上篇博文讲述,UIView中封装了很多系统方法,可以满足我们的大部分需求。但是,其也有很多限制。那些方法产生的动画基本单元为UIView,是非常重量级的对象,而且也不支持三维布局,大部分是对视图的属性修改,和进行二维的仿射变换,若果想让动画效果更加炫酷,则需要使用Core Animation核心动画。Core Animation最重要的就是CALayer(图层),
2013-08-25 21:41:08
2169
原创 UIKit封装的系统动画
简介在UIKit中,对UIView封装了很多类方法来进行简单的动画实现,在动画过程中,通过对属性值的修改来完成一系列的效果。在IOS4以前,主要通过+ beginAnimation+ setAnimationDuration:设置动画时长+ setAnimationDelay:设置延迟时间+ setAnimationDelegate:设置代理
2013-08-22 23:16:46
1924
原创 UIKit和Core Graphics绘图——绘制光泽,仿射变换与矩阵变换
绘制光泽在一个矩形上绘制光泽其实可以通过在原有色彩的基础上绘制一层透明度较高的渐变来实现。首先先看以前绘制渐变的函数。void drawLinearGradient(CGContextRef context, CGRect rect, CGColorRef startColor, CGColorRef endColor){ CGContextSaveGState(
2013-08-19 21:33:40
3063
原创 UIKit和Core Graphics绘图——绘制虚线,椭圆以及饼图
绘制虚线虚线绘制主要调用CGContextSetLineDash函数。这个函数有4个参数,除了一个是上下文外,phase为初始跳过几个点开始绘制,第三个参数为一个CGFloat数组,指定你绘制的样式,绘几个点跳几个点(下面为绘10个点,跳过5个),最后一个参数是上个参数数组元素的个数。- (void)drawLineDash{ CGContextRef con
2013-08-17 21:08:01
3444
原创 UIKit和Core Graphics绘图——构造路径,阴影以及渐变扩展
构造路径通常,一系列点组合一起构成一个形状,而若干个形状组合在一起可以构造一个路径,路径可以规则也可以不规则,随意组合。通过Core Graphics很容易管理路径。主要用到的函数或方法:CGPathCreateMutable() 创建可变路径的方法CGContextAddPath 将路径加入到上下文中CGContextDrawPath绘制路
2013-08-17 02:27:14
4251
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人