Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
单击iOS/xcode后如何使按钮褪色?_Ios_Uibutton - Fatal编程技术网

单击iOS/xcode后如何使按钮褪色?

单击iOS/xcode后如何使按钮褪色?,ios,uibutton,Ios,Uibutton,我想让一个按钮在点击后淡出。我知道我可以用 _myButon.hidden = TRUE; …完全隐藏按钮,但感觉突然和刺耳。我也知道我可以按顺序降低alpha值,但不确定如何在短时间内自动实现 有人能给我一个提示,如何在按钮被点击后用最简单的方法淡出它吗?我希望效果看起来像powerpoint演示文稿中的简单“淡出”或其他内容:) 谢谢 [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:1.0]; _

我想让一个按钮在点击后淡出。我知道我可以用

_myButon.hidden = TRUE;
…完全隐藏按钮,但感觉突然和刺耳。我也知道我可以按顺序降低alpha值,但不确定如何在短时间内自动实现

有人能给我一个提示,如何在按钮被点击后用最简单的方法淡出它吗?我希望效果看起来像powerpoint演示文稿中的简单“淡出”或其他内容:)

谢谢

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];
_myButton.alpha = 0.0f;
[UIView commitAnimations];
或者

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

仅仅减少alpha值并不会使您的按钮完全从视图中移除。对用户来说,它看起来像已经消失了,但它仍然存在。他们仍有可能在不知情的情况下意外点击它。所以你们可以做的就是在它消失后,用定时器将它从视图中移除

...
  //alpha animation

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

    -(IBAction) hideMyButton
    {
           [_myButon removeFromSuperview];
    }

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

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

由于iOS 4,不推荐使用这些方法。你应该改用基于块的方法。@rdelmar它和使用块动画一样好,而且它支持iOS<4,只是更多的代码行如果苹果建议不要使用某些东西,我想最好还是听从他们的建议——我猜旧方法在将来的某个时候会贬值。另外,为什么您希望支持比iOS 4更旧的版本?这一天似乎很无意义。有人能解释一下这个新的“博克方法”吗?块是一个语言级的特性,添加到C、ObjuleC和C++中,这允许你创建不同的代码段,这些代码段可以传递给方法或函数,就像它们是值一样。块是Objective-C对象,这意味着可以将它们添加到NSArray或NSDictionary之类的集合中。它们还能够从封闭范围捕获值,使它们类似于其他编程语言中的闭包或lambda。阅读此URL通常不需要删除按钮,即使您真的想这样做,也可能不使用计时器,而只是在
animationWithDuration
的完成块中执行。这不是真的。当alpha=0(或小于某个非常小的阈值)时,按钮将被完全禁用。请不要使用objective-c标记,除非它涉及实际的语言功能。这是一个关于如何在iOS上做一些事情的问题。请检查链接
[UIView animateWithDuration:0.5
                 animations:^{ _myButton.alpha = 0; }
                  completion:^(BOOL finished){ _myButton.hidden = YES; }
];