美文网首页
GeekBand~iOS~开发高级进阶~第二周

GeekBand~iOS~开发高级进阶~第二周

作者: leoneil | 来源:发表于2016-04-25 01:48 被阅读0次

    动画

    UIKit

    动画用于交互设计:
    更好的展示:relationship,structure,cause & effect

    UIView提供的动画支持
    (UIViewAnimation): depricated
    UIView(UIViewAnimationWithBlocks)

    +(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)) 
    

    Autolayout 环境下的动画
    修改 constraint

    -[view setNeedsUpdateConstraints]
    -[view layoutIfNeeded] in animation block
    

    [UIViewsetAnimationCurve:UIViewAnimationCurveEaseInOut]设置动画曲线,动画曲线指定的是动画进入和退出的方式,它也有几个常量:
    UIViewAnimationCurveEaseInOut
    UIViewAnimationCurveEaseIn
    UIViewAnimationCurveEaseOut
    UIViewAnimationCurveLinear
    setAnimationTransition:forView:cache:方法第一个参数定义动画类型,第二个参数是当前视图对象,第三个参数上使用缓冲区。

    View Transition

    切换动画:用动画过程提示已经切换到新界面了。
    UIView具有一个UIViewAnimationTransition属性可以设定动画,这些动画是iOS提供几个常用动画有:
    UIViewAnimationTransitionNone
    UIViewAnimationTransitionFlipFromLeft
    UIViewAnimationTransitionFlipFromRight
    UIViewAnimationTransitionCurlUp
    UIViewAnimationTransitionCurlDown
    修改子视图显示时:

    图01.png

    视图替换:
    1.从 fromView 切换到toView
    2.一般是场景切换,变化较大

    CoreAnimation

    Core Animation负责所有的滚动、旋转、缩小和放大以及所有的iOS动画效果。其中UIKit类通常都有animated:参数部分,它可以允许是否使用动画。
    Core Animation还与Quartz紧密结合在一起,每个UIView都关联到一个CALayer对象,CALayer是Core Animation中的图层。
    Core Animation创建动画时候会修改CALayer属性,然后让这些属性流畅地变化。Core Animation相关知识点:

    图层,图层是动画发生的地方,CALayer总是与UIView关联,通过layer属性访问。
    隐式动画,这是一种最简单的动画,不用设置定时器,不用考虑线程或者重画。
    Core Animation 认为动画总是需要的,所以默认开着;修改layer的可动画属性时,会自动触发动画。
    显式动画,是一种使用CABasicAnimation创建的动画,通过CABasicAnimation,可以更明确地定义属性如何改变动画。
    关键帧动画,这是一种更复杂的显式动画类型,这里可以定义动画的起点和终点,还可以定义某些帧之间的动画。

    网络编程

    原生API

    TCP/IP简介


    TCP/IP.png

    HTTP协议简介


    HTTP.png

    REST
    服务端API设计模式:使用Path指示资源;HTTP Verb表达操作。
    API方法幂等( Idempotence)的概念:执行多次与执行一次效果一样。

    AFNetWorking

    https://github.com/AFNetworking/AFNetworking
    安装:
    CocoaPods:Podfile

    source 'https://github.com/CocoaPods/Specs.git'
    platform :ios, '8.0'
    pod 'AFNetworking', '~> 3.0'
    

    Carthage:Cartfile

    github "AFNetworking/AFNetworking" ~>3.0
    

    Get方法请求

    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    [manager GET:@"http://example.com/resources.json" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSLog(@"JSON: %@", responseObject);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"Error: %@", error);
    }];
    

    Post请求

    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    NSDictionary *parameters = @{@"foo": @"bar"};
    [manager POST:@"http://example.com/resources.json" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSLog(@"JSON: %@", responseObject);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"Error: %@", error);
    }];
    

    AFNetworking 默认接受的数据类型是(在AFJSONResponseSerializer下):

    self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", nil];
    

    相关文章

      网友评论

          本文标题:GeekBand~iOS~开发高级进阶~第二周

          本文链接:https://www.haomeiwen.com/subject/fvwfrttx.html