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

2018-01-12 kcai386

一、唱片旋转效果(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 就不崩溃了,什么鬼问题


用户评论
开源开发学习小组列表