Saya ingin memiliki semacam animasi pulsa (loop tak terbatas "skala dalam skala keluar") pada UIButton sehingga mendapat perhatian pengguna dengan segera.
Saya melihat tautan ini Bagaimana cara membuat efek pulsa menggunakan -webkit-animasi - cincin luar tetapi saya bertanya-tanya apakah ada cara untuk melakukan ini hanya dengan menggunakan kerangka kerja asli?
ios
objective-c
animation
uikit
Johann
sumber
sumber
myView.layer
untuk mengaksesnya. Anda dapat menganimasikan lapisan dengan Animasi Inti. Untuk transformasi skala, Anda dapat menggunakan pendekatan ini: Dukungan Jalur Kunci untuk Bidang Struktur#import <QuartzCore/QuartzCore.h>
untuk mendapatkan semua definisi untuk CALayers.Ini adalah kode cepat untuk itu;)
let pulseAnimation:CABasicAnimation = CABasicAnimation(keyPath: "transform.scale") pulseAnimation.duration = 1.0 pulseAnimation.toValue = NSNumber(value: 1.0) pulseAnimation.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeInEaseOut) pulseAnimation.autoreverses = true pulseAnimation.repeatCount = .greatestFiniteMagnitude self.view.layer.add(pulseAnimation, forKey: nil)
sumber
Kode swift tidak ada
fromValue
, saya harus menambahkannya untuk membuatnya berfungsi.pulseAnimation.fromValue = NSNumber(float: 0.0)
Juga
forKey
harus diatur, jikaremoveAnimation
tidak tidak berfungsi.self.view.layer.addAnimation(pulseAnimation, forKey: "layerAnimation")
sumber
func animationScaleEffect(view:UIView,animationTime:Float) { UIView.animateWithDuration(NSTimeInterval(animationTime), animations: { view.transform = CGAffineTransformMakeScale(0.6, 0.6) },completion:{completion in UIView.animateWithDuration(NSTimeInterval(animationTime), animations: { () -> Void in view.transform = CGAffineTransformMakeScale(1, 1) }) }) } @IBOutlet weak var perform: UIButton! @IBAction func prefo(sender: AnyObject) { self.animationScaleEffect(perform, animationTime: 0.7) }
sumber