zoukankan      html  css  js  c++  java
  • swift开发笔记13

    let v: String! = str    // 疑问,后面加!,什么意思?表示这个常量一定有值

    Swift控制流: 如何理解 if let 与guard?

    https://www.zhihu.com/question/36448325
    语法糖
    func doSomething(str: String?)
    {
        if let v = str
        {
            // use v to do something
        }
    }
     
    func doSomething(str: String?)
    {
        guard let v = str else { return }
    
        // use v to do something
    }

                // set up mask

                mask = CALayer.init()

                mask?.contents = UIImage.init(named: "twitterBird")?.cgImage

                mask?.position = window.center

                mask?.bounds = CGRect.init(x: 0, y: 0, 100, height: 80)

                imageView?.layer.mask = mask

     

     

    func animateMask() -> Void {

            // init key frame animation

            let keyFrameAnimation = CAKeyframeAnimation.init(keyPath: "bounds")// 注意此key不是自定义的,KVO

            keyFrameAnimation.delegate = self

            keyFrameAnimation.duration = 10

            keyFrameAnimation.beginTime = CACurrentMediaTime() + 1

            

            // animate zoom in and then zoom out

            let initialBounds = NSValue.init(cgRect: (mask!.bounds))

            let secondBounds = NSValue.init(cgRect: CGRect.init(x: 0, y: 0, 80, height: 64))

            let finalBounds = NSValue.init(cgRect: CGRect.init(x: 0, y: 0, 2000, height: 2000))

            keyFrameAnimation.values = [initialBounds, secondBounds, finalBounds]

            // set up time interals

            keyFrameAnimation.keyTimes = [0, 0.3, 1]// 这是个线性时间比例,例如:0.3*10(总时间)=3,是从initialBounds到secondBounds的动画时间;

            

            // add animation to current view

            keyFrameAnimation.timingFunctions = [CAMediaTimingFunction.init(name: kCAMediaTimingFunctionEaseInEaseOut),CAMediaTimingFunction.init(name: kCAMediaTimingFunctionEaseOut)]

            mask!.add(keyFrameAnimation, forKey: "bounds")// 注意此key是自定义的,KVO

        }

     

    func animationDidStop(_ anim: CAAnimation, finished flag: Bool) {

            imageView?.layer.mask = nil

        }

     

     
     
  • 相关阅读:
    [From 11.1~11.4]事件
    [From 10.1~10.5] 对象和集合初始化器(C#语法糖系列)
    [From 9.3]out和ref关键字
    [From 8.5]转换操作符方法
    将博客搬至CSDN
    QPS 与 TPS 简介
    在cenos中,通过subversion源码进行安装
    no acceptable C compiler found in $PATH
    tgz解压
    程序中的@Override是什么意思?
  • 原文地址:https://www.cnblogs.com/dengchaojie/p/7457881.html
Copyright © 2011-2022 走看看