我正在尝试实现一个简单的动画,该动画与按钮上的 alpha 值混淆。但是速度太快了,您看不到动画。
-(void)Flash: (id)sender {
UIButton *senderButton = (UIButton *)sender;
for (float i = 0.8; i > 0.2; i = i - 0.1) {
senderButton.alpha = i;
}
senderButton.alpha = 0.9;
}
如何每 0.5 秒减慢一次进程?
最佳答案
要在指定的持续时间内减少 View 的不透明度,请将其放入动画 block 中。您可以设置 alpha - 我个人的偏好是调整图层属性以进行视觉处理(主要是我的代码库中的一致性问题)。您可以使用此处演示的任何一种方法(不要同时使用两者)——在这种情况下,差异可以忽略不计。如果修改图层属性,则需要导入 Quart header 。
- (void)flash:(id)sender
{
UIButton *button = (UIButton *)sender;
NSTimeInterval duration = 1;
[UIView animateWithDuration:duration
animations:^{
// My preferred approach is to set layer opacity...
[[button layer] setOpacity:0.1f];
// But you could just as easily set alpha (per your original question)
[button setAlpha:0.1f];
} completion:^(BOOL finished) {
// Returns the button to full opacity on completion.
[[button layer] setOpacity:1.0f];
// Or alternately, alpha
[button setAlpha:1.0f];
}];
}
关于objective-c - 在 xcode 中延迟命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13419145/