效果如图:
代码如下:
//// VIEwController.swift// TwoSIDedVIEw//// Created by mayl on 2017/12/14.// copyright © 2017年. All rights reserved.//import UIKitlet gBtn = UIbutton.init(type: UIbuttonType.custom)let gimgV4BottomSIDe = UIImageVIEw.init(image: UIImage.init(named: "bottomSIDe"))let gimgV4topSIDe = UIImageVIEw.init(image: UIImage.init(named: "topSIDe"))var lBool4ChangeimgV : Bool = falseclass VIEwController: UIVIEwController { overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() setUpUI() } func setUpUI() { vIEw.addSubvIEw(gBtn) gBtn.addTarget(self,action: #selector(VIEwController.btnDIDClick),for: UIControlEvents.touchUpInsIDe) gBtn.center = vIEw.center gBtn.addSubvIEw(gimgV4BottomSIDe) gBtn.layer.transform = CAtransform3DMakeRotation(CGfloat(Double.pi),1,0) gBtn.addSubvIEw(gimgV4topSIDe) //按钮大小设置为与图片大小一致 gBtn.bounds = gimgV4BottomSIDe.bounds } @objc func btnDIDClick() { let lAni = CAKeyframeAnimation.init(keyPath: "transform.rotation.y") lAni.duration = 1 lAni.values = [0,Double.pi]; //使得动画结束后,保持动画效果 lAni.isRemovedOnCompletion = false lAni.fillMode = kCAFillModeForwards lAni.delegate = self; gBtn.layer.add(lAni,forKey: nil) }}extension UIVIEwController: CAAnimationDelegate{ public func animationDIDStart(_ anim: CAAnimation) { let lDur:CFTimeInterval = anim.duration dispatchQueue.main.asyncAfter(deadline: dispatchTime.Now() + lDur * 0.5) { gBtn.bringSubvIEw(toFront: lBool4ChangeimgV == false ? gimgV4BottomSIDe : gimgV4topSIDe) lBool4ChangeimgV = !lBool4ChangeimgV } }}
素材:
总结
以上是内存溢出为你收集整理的点击按钮每次都能实现图片的旋转和切换(swift)全部内容,希望文章能够帮你解决点击按钮每次都能实现图片的旋转和切换(swift)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)