单击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 在相同的按钮操作上出现和消失