【Swift 3.1】iOS开发笔记(四)

 

 

  一、唱片旋转效果(360°无限顺时针旋转)

    func animationRotateCover() {
        coverImageView.layer.removeAllAnimations()

        let animation = CABasicAnimation(keyPath: "transform.rotation")
        animation.fromValue = 0
        animation.toValue = CGFloat.pi * 2
        animation.duration = 5
        animation.isCumulative = true
        animation.repeatCount = Float.infinity
        coverImageView.layer.add(animation, forKey: nil)
    }

 

  二、防止文件被 iCloud 同步备份

    NSURLIsExcludedFromBackupKey

 

  三、禁止 UICollectionView reload/insert 动画

      UIView.performWithoutAnimation {
           self.videoPartCollectionView.reloadData()
      }

 

  四、Objective-C 中的 performSelector 在 Swift 里变成了 sendAction

    var rightTappedSelector: Selector?

    @IBAction func rightTappedAction(_ sender: Any) {
        guard let selector = rightTappedSelector else {
            return
        }
        rightButton.sendAction(selector, to: nil, for: nil)
    }

 

  五、获得 CGAffineTransform 的 rotation 信息

extension CGAffineTransform {

    func getTransformRotation() -> CGFloat {
        return atan2(self.b, self.a)  * 180 / CGFloat.pi
    }
    
}

 

  六、获取 Date 的 nano 时间

extension Date {

    func nanosecond() -> Int64 {
        let nanosecond: Int64 = Int64(Calendar.current.dateComponents([.nanosecond], from: self).nanosecond ?? 0)
        return Int64(self.timeIntervalSince1970 * 1000000000) + nanosecond
    }

}

 

  七、AVCapturePhotoOutput.capturePhoto 崩溃的问题

    不要让 UIViewController 实现 AVCapturePhotoCaptureDelegate ,要跟 AVCam 例子一样弄一个 class PhotoCaptureDelegate: NSObject, AVCapturePhotoCaptureDelegate 就不崩溃了,什么鬼问题

 

你可能感兴趣的:(【Swift 3.1】iOS开发笔记(四))