本周的课程主要讲了两个方面的内容:动画和网络
动画方面,分别讲了UIKit、Transition和CoreAnimation
用mac预览打开一个gif图,是无数个图片排好序,叠加之后形成动作。
FPS:每秒传输帧数
几个数字:10fps流畅,16fps完全平滑,电影24fps(传说中的24帧),计算机显示60fps才足够。
3个类方法(其中startTime和duration都是比例值,从0-1.0):
+(void)animateWithDuration:(NSTimeInterval) delay: (NSTimeInterval) options:(UIViewAnimationOptions) animations:(void (^) (void)) completion:(void (^__nullable) (BOOL finished));
+(void) animateWithDuration:(NSTimeInterval) animations:(void (^) (void)) completion:(void(^__nullable)(BOOL finished))
+(void) animateWithDuration:(NSTimeInterVal) animations:(void (^) (void))
SprintAnimation(iOS+)
+(void)animationWithDuration:(NSTimeInterval)duration //总时长,一个浮点数,以秒为单位
delay:(NSTimeInterval)delay //延时启动,float,以秒为单位
usingSpringWithDamping:(CGFloat)dampingRatio //阻尼值0-1.0
initalSpringVelocity:(CGFloat)velocity //初速度(pt)
options:(UIViewAnimationOptions)options
animations:(void (^) (void) )animations
completion:(void (^) (BOOL finished) )completion
Autolayout环境下的动画:修改constraint
-[view setNeedsUpdateConstraints]
-[view layoutIfNeeded] in animation block
View Transition
View切换动画:用动画过程提示已经切换到新界面叫View Transition。
在iOS中切换动画分为两类:
(一)修改子视图显示,变化较小
UIView的类方法:
+transitionWithView:duration:options:animations:completion:
//WithView:上级View;duration:动画长度;options:指定用那种类型的动画
(二)视图切换(从fromView切换到toView),变化较大
UIView的类方法:
+transitionFromView:toView:duration:options:completion:
网络编程 - 原生API
前半段讲的是网络的基础知识,《TCP/IP Illustrated》三部曲 拿来参考
记住了一个概念:幂等,放止多次操作,切记。
iOS7之后NSURLSession最常见
读取URL
NSURLSession *session = [NSURLSession shareSession];
[[ session dataTaskWithURL : myURL CompletionHandler :^(NSData *data, NSURLResponse *response, NSError *error) {...} ]resume];
NSURLSession 的结构:
NSURLSession的基本用法
根据Session类型选择NSURLSessionConfiguration
设置Configuration,如指定NDURLCache等
用Configuration创建Session
+[NSURLSessionsessionWithConfiguration:delegate:delegateQueue:]
+[NSURLSessionsessionWithConfiguration:]//简单版本
在session里创建网络访问任务
启动任务
-[NSURLSessionTask resume]
NSURLSession的类型:
对于作业,实在是没辙了,不过这个很有参考价值:CoreLocation框架的应用