上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 16 下一页
摘要: 1 CABasicAnimation* rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; 2 rotationAnimation.toValue = [NSNumber numberWithFloat:(2 * M_PI) * 3]; 3 rotationAnimation.duration = 1.9f; 4 rotationAnimation.timingFunction = [CAMediaTimingFunction function... 阅读全文
posted @ 2013-02-08 19:41 diablo大王 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 1 UIBezierPath *path = [UIBezierPath bezierPath]; 2 [path moveToPoint:CGPointMake(-40, 100)]; 3 [path addLineToPoint:CGPointMake(360, 100)]; 4 [path addLineToPoint:CGPointMake(360, 200)]; 5 [path addLineToPoint:CGPointMake(-40, 200)]; 6 [path addLineToPoint:CGPointMake(-40, ... 阅读全文
posted @ 2013-02-08 10:51 diablo大王 阅读(3387) 评论(0) 推荐(0) 编辑
摘要: 1 rotationAnimation.removedOnCompletion = NO;2 3 rotationAnimation.fillMode = kCAFillModeForwards;fillMode的作用就是决定当前对象过了非active时间段的行为. 比如动画开始之前,动画结束之后。如果是一个动画CAAnimation,则需要将其removedOnCompletion设置为NO,要不然fillMode不起作用. 下面来讲各个fillMode的意义kCAFillModeRemoved这个是默认值,也就是说当动画开始前和动画结束后,动画对layer都没有影响,动画结束后,layer 阅读全文
posted @ 2013-02-08 10:24 diablo大王 阅读(12207) 评论(1) 推荐(1) 编辑
摘要: 任何对于CALayer属性的修改,都是隐式事务,都会有动画效果.这样的事务会在run-loop中被提交. 1 - (void)viewDidLoad { 2 //初始化一个layer,添加到主视图 3 layer=[CALayer layer]; 4 layer.bounds = CGRectMake(0, 0, 200, 200); 5 layer.position = CGPointMake(160, 250); 6 layer.backgroundColor = [UIColor redColor].CGColor; 7 layer.bor... 阅读全文
posted @ 2013-02-07 16:16 diablo大王 阅读(5621) 评论(0) 推荐(0) 编辑
摘要: 1 CATransition *animation = [CATransitionanimation]; 2 animation.delegate = self; 3 animation.duration = 0.7; 4 animation.timingFunction = UIViewAnimationCurveEaseInOut; 5 6 switch (tag) { 7 case 101: 8 animation.type = kCATransitionFade; // 淡化 9 ... 阅读全文
posted @ 2013-02-07 14:41 diablo大王 阅读(586) 评论(0) 推荐(0) 编辑
摘要: 1 UIPageControl *page = [[UIPageControl alloc] init]; // 页面控制器初始化2 page.backgroundColor = [UIColor redColor]; // 必须设置背景色3 page.numberOfPages = 5; // 共有5页4 page.currentPage = 1; // 当前页是第一页5 [page addTarget:self6 action:@selector(didChange:)7 forControlEvents:UIControlEventValueChanged]; //... 阅读全文
posted @ 2013-02-06 15:58 diablo大王 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 1 UIProgressView *pv = [[UIProgressView alloc] init]; // 进度条初始化2 3 pv.progressViewStyle = UIProgressViewStyleDefault; // 蓝色样式4 pv.progressViewStyle = UIProgressViewStyleBar; // 白色进度条,主要用于工具条5 pv.progress = 0.5; // 设置当前进度 阅读全文
posted @ 2013-02-06 15:49 diablo大王 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 1 -(IBAction)brun:(id)sender{ 2 NSLog(@"run start"); 3 while (!bl) { 4 [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]]; 5 } 6 NSLog(@"run end"); 7 } 8 9 -(IBAction)bc:(id)sender{10 bl = TRUE;11 }NSRunLoop的本质是一个消息机制的处理模式。如果你对vc... 阅读全文
posted @ 2013-02-06 15:38 diablo大王 阅读(392) 评论(0) 推荐(0) 编辑
摘要: GCD (Grand Central Dispatch) 是Apple公司开发的一种技术,它旨在优化多核环境中的并发操作并取代传统多线程的编程模式。在Mac OS X 10.6和IOS 4.0之后开始支持GCD。使用GCD的一个理由就是方便。回想一下以前的多线程编程,我们会把异步调用的代码放到另外的一个函数中,并通过NSThread开启新线程来启动这段代码。 这种跳来跳去的流程对于复杂的逻辑简直就是一场灾难。更糟糕的是,调用线程时的环境对异步代码是不可见的,如果我们需要当时的临时变量的话只有两个选择: 保存到类成员变量中或者作为参数传递过去。前者会造成很多莫名奇妙的无关类成员,而后者的功能过于 阅读全文
posted @ 2013-02-06 14:31 diablo大王 阅读(2102) 评论(0) 推荐(0) 编辑
摘要: GCD是和block紧密相连的,所以最好先了解下block。GCD是C level的函数,这意味着它也提供了C的函数指针作为参数。下面首先来看GCD的使用:dispatch_async(dispatch_queue_t queue, dispatch_block_t block);async表明异步运行,除了async,还有sync(同步),delay(延时)block代表的是你要做的事情,queue则是你把任务交给谁来处理了.dispatch_async这个函数是异步的,这就意味着它会立即返回而不管block是否运行结束。因此,我们可以在block里运行各种耗时的操作(如网络请求) 而同时不 阅读全文
posted @ 2013-02-06 14:27 diablo大王 阅读(2545) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 16 下一页