单击iOS / xcode后如何使按钮消失?

Posted

技术标签:

【中文标题】单击iOS / xcode后如何使按钮消失?【英文标题】:How to make a button fade after clicked for iOS / xcode? 【发布时间】:2013-07-03 00:33:58 【问题描述】:

我想让一个按钮在被点击后消失。我知道我可以使用

_myButon.hidden = TRUE;

...完全隐藏一个按钮,但感觉突然和刺耳。我也知道我可以依次降低 alpha 或其他东西,但不知道如何在短时间内自动实现。

有人可以给我一个提示,如何使用最简单的方式在单击按钮后淡出按钮?我希望效果看起来像一个简单的“淡出”幻灯片或其他东西:)

谢谢!

【问题讨论】:

请不要使用objective-c 标签,除非它涉及实际的语言特性。这是一个专门关于如何在 ios 上做某事的问题。 maniacdev.com/2009/07/…请查看链接 snipplr.com/view/48888 【参考方案1】:
[UIView animateWithDuration:0.5 animations:^
    _myButton.alpha = 0;
];

【讨论】:

【参考方案2】:

与其移除按钮,不如将其隐藏。考虑到您得到的所有建议:

[UIView animateWithDuration:0.5
                 animations:^ _myButton.alpha = 0; 
                  completion:^(BOOL finished) _myButton.hidden = YES; 
];

【讨论】:

【参考方案3】:
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];
_myButton.alpha = 0.0f;
[UIView commitAnimations];

或者

[UIView animateWithDuration:1.0 animations:^
    _myButton.alpha = 0.0f;
];

【讨论】:

自 iOS 4 起不推荐使用这些方法。您应该改用基于块的方法。 @rdelmar 和使用块动画一样好,它支持 iOS 如果 Apple 建议不要使用某些东西,我认为最好听从他们的建议——我猜旧的方法在未来的某个时候会被贬值。另外,为什么要支持比 iOS 4 更早的版本?这些天来,这似乎毫无意义。 有人能解释一下这个新的“bock 方法”吗? 块是添加到 C、Objective-C 和 C++ 的语言级功能,它允许您创建不同的代码段,这些代码段可以像值一样传递给方法或函数。块是 Objective-C 对象,这意味着它们可以添加到 NSArray 或 NSDictionary 等集合中。它们还具有从封闭范围捕获值的能力,使它们类似于其他编程语言中的闭包或 lambda。并阅读此网址developer.apple.com/library/ios/#documentation/cocoa/Conceptual/…【参考方案4】:

仅仅降低 alpha 不会使您的按钮完全从您的视图中移除。对用户来说,它看起来像是消失了,但它仍然存在。他们可能仍然会在不知情的情况下意外点击它。因此,您可以做一个计时器,在它消失后将其从视图中移除。

...
  //alpha animation

//remove from view
    timer1 = [NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(hideMyButton) userInfo:nil repeats:NO];


    -(IBAction) hideMyButton
    
           [_myButon removeFromSuperview];
    

【讨论】:

通常不需要移除按钮,即使您真的想这样做,您也可能不会使用计时器,而只是在animationWithDuration 的完成块中执行。跨度> 这不是真的。当 alpha = 0(或小于某个非常小的阈值)时,按钮将被完全禁用。

以上是关于单击iOS / xcode后如何使按钮消失?的主要内容,如果未能解决你的问题,请参考以下文章

当用户单击视图的背景时,如何使键盘消失?

iOS-Xcode11之后Assistant Editor消失的解决方法

如何使 ChildViewController 在相同的按钮操作上出现和消失

在ios 7 xcode中单击滚动视图上方的按钮时,如何滚动滚动视图?

如何使按钮在 Unity 中消失?

HTML 和 JS:如何在 div 中使用 textContent 在单击按钮后显示文本而不让文本快速消失? [复制]