iphone - 触摸时淡出 UIButton

标签 iphone cocoa-touch uikit uibutton

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

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

干杯

尼克

最佳答案

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

- (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 调用,以便用户在按钮淡入正常状态时无法点击该按钮。如果您想允许这样做,请将 begin/end 调用替换为 [UIView setAnimationBeginsFromCurrentState];

关于iphone - 触摸时淡出 UIButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1517149/

相关文章:

iphone - UIScrollView 不显示滚动指示器

ios - 转换为 CGImage 时 UIImage 大小加倍?

ios - 在特定条件下切换约束

ios - Facebook 应用链接问题

ios - 将应用从付费转换为应用内购买?我如何找出哪些用户支付了费用?

iphone - 从具有 BOOL 值的 plist 问题中读取 NSDictionary

iphone - 在实现应用内购买期间使产品 ID 无效

ios - 相机应用程序,如屏幕旋转和导航

ios - 如何在 UICollectionViewCell 上显示标准复选标记?

ios - 滚动时 UItableView 弃用单元格