如何让UIImageView blink/flash动画无限大?
How to make UIImageView blink/flash animation infinite?
我正在尝试在我的 iOS 应用程序中为 UIImageView 实现 blinking/flashing 效果并持续一段时间。我希望 UIImageView blink/flash 具有 alpha,而不是不同的图像。
我有另一个来自 android 应用程序的代码片段,它描述了我在 XCode Swift 中想要实现的目标。我在下面post它:
这是我目前在 XCode Swift:
中取得的成就
ellipses.alpha=0.8
ellipses.animationDuration=1
ellipses.animationRepeatCount=0
ellipses.startAnimating()
当然,它不起作用!我不太确定如何实现这一目标,并且很乐意获得一些指导。
下面这段代码是针对android,而不是针对Swift/Xcode(但它描述的我的目标很明确)
Animation animation = new AlphaAnimation(1, 0); //to change visibility from visible to invisible
animation.setDuration(1000); //1 second duration for each animation cycle
animation.setInterpolator(new LinearInterpolator());
animation.setRepeatCount(Animation.INFINITE); //repeating indefinitely
animation.setRepeatMode(Animation.REVERSE); //animation will start from end point once ended.
imageButton.startAnimation(animation); //to start animation
使用下面的代码来获得像眨眼一样的图像动画。
图像闪烁(使用图像视图hide/show):-
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(self.alarmAlertActivate), userInfo: nil, repeats: true)
}
@objc func alarmAlertActivate(){
myImage.isHidden = !myImage.isHidden
}
图像闪烁(使用图像视图 alpha):-
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
Timer.scheduledTimer(timeInterval: 0.7, target: self, selector: #selector(self.alarmAlertActivate), userInfo: nil, repeats: true)
}
@objc func alarmAlertActivate(){
UIView.animate(withDuration: 0.7) {
self.alarmImage.alpha = self.alarmImage.alpha == 1.0 ? 0.0 : 1.0
}
}
您可以反复设置图像视图的不透明度动画。类似于:
UIView.animate(withDuration: 2.0,
delay: 0,
options: [.repeat, .autoreverse],
animations: { imageView.alpha = 0 }
)
我想让我的按钮 blink/flash 突然,而不是像大多数 IOS 动画默认那样平滑地淡入淡出。上面接受的答案使用计时器来完成此操作,但您也可以设置常规动画制作器 class 来执行此操作 - 无需平滑。下面是一个闪烁按钮边框颜色的示例,但这可以用于任何需要相同效果的东西。
这里的技巧是使用“关键帧”动画,并将计算模式设置为“离散”:
let color = CAKeyframeAnimation(keyPath: "borderColor")
color.values = [CGColor.white, CGColor.black, CGColor.white]
color.keyTimes = [0, 0.5, 1]
color.duration = 1
color.repeatCount = .infinity
color.calculationMode = .discrete
gotItButton.layer.borderWidth = 3
gotItButton.layer.add(color, forKey: "")
我正在尝试在我的 iOS 应用程序中为 UIImageView 实现 blinking/flashing 效果并持续一段时间。我希望 UIImageView blink/flash 具有 alpha,而不是不同的图像。
我有另一个来自 android 应用程序的代码片段,它描述了我在 XCode Swift 中想要实现的目标。我在下面post它:
这是我目前在 XCode Swift:
中取得的成就 ellipses.alpha=0.8
ellipses.animationDuration=1
ellipses.animationRepeatCount=0
ellipses.startAnimating()
当然,它不起作用!我不太确定如何实现这一目标,并且很乐意获得一些指导。
下面这段代码是针对android,而不是针对Swift/Xcode(但它描述的我的目标很明确)
Animation animation = new AlphaAnimation(1, 0); //to change visibility from visible to invisible
animation.setDuration(1000); //1 second duration for each animation cycle
animation.setInterpolator(new LinearInterpolator());
animation.setRepeatCount(Animation.INFINITE); //repeating indefinitely
animation.setRepeatMode(Animation.REVERSE); //animation will start from end point once ended.
imageButton.startAnimation(animation); //to start animation
使用下面的代码来获得像眨眼一样的图像动画。
图像闪烁(使用图像视图hide/show):-
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(self.alarmAlertActivate), userInfo: nil, repeats: true)
}
@objc func alarmAlertActivate(){
myImage.isHidden = !myImage.isHidden
}
图像闪烁(使用图像视图 alpha):-
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
Timer.scheduledTimer(timeInterval: 0.7, target: self, selector: #selector(self.alarmAlertActivate), userInfo: nil, repeats: true)
}
@objc func alarmAlertActivate(){
UIView.animate(withDuration: 0.7) {
self.alarmImage.alpha = self.alarmImage.alpha == 1.0 ? 0.0 : 1.0
}
}
您可以反复设置图像视图的不透明度动画。类似于:
UIView.animate(withDuration: 2.0,
delay: 0,
options: [.repeat, .autoreverse],
animations: { imageView.alpha = 0 }
)
我想让我的按钮 blink/flash 突然,而不是像大多数 IOS 动画默认那样平滑地淡入淡出。上面接受的答案使用计时器来完成此操作,但您也可以设置常规动画制作器 class 来执行此操作 - 无需平滑。下面是一个闪烁按钮边框颜色的示例,但这可以用于任何需要相同效果的东西。
这里的技巧是使用“关键帧”动画,并将计算模式设置为“离散”:
let color = CAKeyframeAnimation(keyPath: "borderColor")
color.values = [CGColor.white, CGColor.black, CGColor.white]
color.keyTimes = [0, 0.5, 1]
color.duration = 1
color.repeatCount = .infinity
color.calculationMode = .discrete
gotItButton.layer.borderWidth = 3
gotItButton.layer.add(color, forKey: "")