摘要: 之所以叫做关键帧动画是因为,这个类可以实现,某一属性按照一串的数值进行动画,就好像制作动画的时候一帧一帧的制作一样。一般使用的时候 首先通过animationWithKeyPath方法 创建一个CAKeyframeAnimation实例,CAKeyframeAnimation 的一些比较重要的属性1. path这是一个 CGPathRef 对象,默认是空的,当我们创建好CAKeyframeAnimation的实例的时候,可以通过制定一个自己定义的path来让 某一个物体按照这个路径进行动画。这个值默认是nil 当其被设定的时候 values 这个属性就被覆盖2. values一个数组,提供了一 阅读全文
posted @ 2013-01-02 13:55 不曾拥有 阅读(7921) 评论(1) 推荐(1) 编辑
摘要: 我们建立了一列基础动画,和简单的增加他们到层上面。如果你想要所有的动 画开始在同样的时间,并且他们中每个动画都有同样的执行时间,这个方法是足够了- (IBAction)animate:(id)sender;{NSRect oldRect = NSMakeRect(0.0, 0.0, 100.0, 100.0);NSRect newRect = NSMakeRect(0.0, 0.0, 300.0, 300.0); CABasicAnimation *boundsAnimation =[CABasicAnimation animationWithKeyPath:@”bounds”];[bound 阅读全文
posted @ 2012-12-20 17:29 不曾拥有 阅读(5790) 评论(0) 推荐(0) 编辑
摘要: 当需要对非Root Layer进行动画或者需要对动画做更多自定义的行为的时候,就必须使用到显式动画了,显式动画的基类为CAAnimation,常用的是CABasicAnimation,CAKeyframeAnimation有时候还会使用到CAAnimationGroup,CATransition(注意不是CATransaction,Transition是过渡的意思).这里再强调关于动画的两个重要的点:一是中间状态的插值计算(Interpolation),二是动画节奏控制(Timing); 有时候插值计算也和Timing有一定关系. 如果状态是一维空间的值(比如透明度),那么插值计算的结果必然再 阅读全文
posted @ 2012-12-20 16:39 不曾拥有 阅读(3488) 评论(0) 推荐(0) 编辑
摘要: 转自http://geeklu.com/2012/09/animation-in-ios/二.CALayer及时间模型我们都知道UIView是MVC中的View.UIView的职责在于界面的显示和界面事件的处理.每一个View的背后都有一个layer(可以通过view.layer进行访问),layer是用于界面显示的.CALayer属于QuartzCore框架,非常重要,但并没有想象中的那么好理解.我们通常操作的用于显示的Layer在Core Animation这层的概念中其实担当的是数据模型Model的角色,它并不直接做渲染的工作.关于Layer,之前从座标系的角度分析过,这次则侧重于它的时 阅读全文
posted @ 2012-12-20 16:37 不曾拥有 阅读(4320) 评论(1) 推荐(0) 编辑
摘要: CABasicAnimation 自己只有三个property fromValue toValue ByValue当你创建一个 CABasicAnimation 时,你需要通过-setFromValue 和-setToValue 来指定一个开始值和结束值。 当你增加基础动画到层中的时候,它开始运行。当用属性做动画完成时,例如用位置属性做动画,层就会立刻 返回到它的初始位置记住当你做动画时,你至少使用了 2 个对象。这些对象都是层本身,一个层或者层继承的对象,和在先前 的例子中你分配给层的 CABasicAnimation 对象。因为你给动画对象设定了最后的值(目的地),但是并不意 味着当动画. 阅读全文
posted @ 2012-12-20 16:22 不曾拥有 阅读(35516) 评论(1) 推荐(1) 编辑
摘要: 转自 http://www.cnblogs.com/lovecode/articles/2305840.htmliOS SDK的NSXMLParser解析XML文档是事件驱动模式的,即采用SAX方式来解析XML格式文档。NSXMLParser在处理XML文档的过程中当遇到一些要素(元素、属性、CDATA块、评论等)时会通知它的委托,而自身不对解析的要素进行任何处理,全权委托给NSXMLParserDelegate处理。同时它也会报告错误。1. 打开一个xml文件,读取内容到NSData中。NSString *path = [[NSBundle mainBundle] pathForResour 阅读全文
posted @ 2012-12-03 16:45 不曾拥有 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 转自http://www.cnblogs.com/weidagang2046/archive/2012/03/01/massive-user-ranking.html问题某海量用户网站,用户拥有积分,积分可能会在使用过程中随时更新。现在要为该网站设计一种算法,在每次用户登录时显示其当前积分排名。用户最大规模为2亿;积分为非负整数,且小于100万。PS: 据说这是迅雷的一道面试题,不过问题本身具有很强的真实性,所以本文打算按照真实场景来考虑,而不局限于面试题的理想环境。存储结构首先,我们用一张用户积分表user_score来保存用户的积分信息。表结构:示例数据:下面的算法会基于这个基本的表结构来 阅读全文
posted @ 2012-10-29 15:42 不曾拥有 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 首先 下载源代码倒入runloop文件夹下的 四个文件即可AsyncSocket *socket=[[AsyncSocketalloc]initWithDelegate:self];NSError *error;[socket connectToHost:h onPort:p withTimeout:-1error:&error ];然后实现一些Delegate方法A:- (void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port;B:- (void)onSocketDid 阅读全文
posted @ 2012-10-28 14:47 不曾拥有 阅读(13498) 评论(1) 推荐(0) 编辑
摘要: 二维数组和指针⑴ 用指针表示二维数组元素。要用指针处理二维数组,首先要解决从存储的角度对二维数组的认识问题。我们知道,一个二维数组在计算机中存储时,是按照先行后列的顺序依次存储的,当把每一行看作一个整体,即视为一个大的数组元素时,这个存储的二维数组也就变成了一个一维数组了。而每个大数组元素对应二维数组的一行,我们就称之为行数组元素,显然每个行数组元素都是一个一维数组下面我们讨论指针和二维数组元素的对应关系,清楚了二者之间的关系,就能用指针处理二维数组了。设p是指向数组a的指针变量,若有:p=a[0];则p+j将指向a[0]数组中的元素a[0][j]。由于a[0]、a[1]┅a[M-1]等各个行 阅读全文
posted @ 2012-10-27 11:19 不曾拥有 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 首先 指针式分级别的 *p是一级指针 **p是二级指针 比如我们定义 int a[5];int *p;此时 a作为数组中第一个元素的地址 是一个一级 指针, 所以 直接 p=a 就可以 若要得到第n个元素 只需 *(p+n)下面主要讨论二维数组与指针int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};int *p;int (*p)[3];数组a是一个二维数组,其在内存中的存储方式 是顺序存储的,如果我们用p访问任意一个元素的话 有如下方法 比如访问a[2][2];1.p=&[0][0]; *(p+2*3+2);2.p=a[0]; *(p+2... 阅读全文
posted @ 2012-10-27 11:18 不曾拥有 阅读(151) 评论(0) 推荐(0) 编辑