繁体   English   中英

触摸时淡出UIButton

[英]Fading out an UIButton when touched

我有一个选择状态和一个UIButton的正常状态,它们都是UIImages。 触摸按钮时,我希望它能够达到选定状态,然后在一秒钟内恢复正常状态。 我按下UIButton * btn时设置了以下动画,但它只是再次切换回取消选择状态。 我该如何实现这一目标?

[btn setSelected:YES];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0f];
[btn setSelected:NO];
[UIView commitAnimations];

干杯

由于selected不是可动画的属性,因此无效(正如您所知)。 我的解决方案是让btn的选定状态位于完全相同位置的按钮下方的单独UIImageView中。 然后在点击按钮的操作中:

- (void) tapButton:(UIButton *)btn {
    btn.alpha = 0;
    [[UIApplication sharedApplication] beginIgnoringInteractionEvents];
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:1];
    [UIView setAnimationDelegate:[UIApplication sharedApplication]];
    [UIView setAnimationDidStopSelector:@selector(endIgnoringInteractionEvents)];
    btn.alpha = 1;
    [UIView commitAnimations];
}

注意我还添加了begin/endIgnoringInteractionEvents调用,因此用户在淡入其正常状态时无法点击该按钮。 如果你想允许,用[UIView setAnimationBeginsFromCurrentState];替换begin/end调用[UIView setAnimationBeginsFromCurrentState];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM