Swift and swiftcode
Swift-transform. m34 animation example
Effect
Source code
Https://github.com/YouXianMing/Swift-Animations
/// CATransform3DM34Controller. swift // Swift-Animations /// Created by YouXianMing on 16/8/19. // Copyright©2016 YouXianMing. All rights reserved. // import UIKitclass CATransform3DM34Controller: NormalTitleViewController {var layer: CALayer! Var timer: GCDTimer! Var transformState: Bool! = False override func setup () {super. setup () initLayer () timerEvent ()} func initLayer () {let image = UIImage (named: "1") layer = CALayer () layer. frame = CGRectMake (0, 0, image !. Size. width/2, image !. Size. height/2) layer. position = (contentView ?. MiddlePoint )! Layer. borderWidth = 4 layer. borderColor = UIColor. blackColor (). CGColor layer. contents = image ?. CGImage contentView ?. Layer. addSublayer (layer)} func timerEvent () {weak var wself = self timer = GCDTimer (inQueue: GCDQueue. mainQueue) timer. event ({if wself ?. TransformState = false {wself ?. TransformState = true wself ?. TransformStateEvent ()} else {wself ?. TransformState = false wself ?. NormalStateEvent () }}, timeIntervalWithSeconds: 2.0, delayWithSeconds: 1.0) timer. start ()} func transformStateEvent () {var perspectiveTransform = CATransform3DIdentity perspectiveTransform. m34 =-(1.0/500.0) perspectiveTransform = CATransform3DTranslate (perspectiveTransform, 30,-35, 0) perspectiveTransform = transform (perspectiveTransform, Math. radianFromDegree (30), 0.75, 1,-0.5) perspectiveTransform = CATransform3DScale (perspectiveTransform, 0.75, 0.75, 0.75) layer. transform = perspectiveTransform layer. allowsEdgeAntialiasing = true layer. speed = 0.5} func normalStateEvent () {let perspectiveTransform = CATransform3DIdentity layer. transform = perspectiveTransform layer. speed = 0.5 }}