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

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

_myButon.hidden = TRUE;

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

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

谢谢!

【问题讨论】:

标签: ios uibutton


【解决方案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(或小于某个非常小的阈值)时,按钮将被完全禁用。
      猜你喜欢
      • 2021-08-27
      • 1970-01-01
      • 2021-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多