大佬教程收集整理的这篇文章主要介绍了点击按钮每次都能实现图片的旋转和切换(swift),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
效果如图:
代码如下:
//
// ViewController.swift
// TwoSidedView
//
// Created by mayl on 2017/12/14.
// Copyright © 2017年. All rights reserved.
//
import UIKit
let 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 = false
class 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)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。