如何在for循环中设置带动画的按钮alpha?

时间:2013-09-13 20:16:04

标签: iphone ios objective-c animation uibutton

我正在尝试在动画中设置按钮alpha。 我有tre按钮,其中一个必须在动画期间消失,另外2个必须出现在视图上。

这是我的代码:

    for (UIButton *button in self.buttonInView) {
        if ([button.titleLabel.text isEqualToString:TITLE_OF_START_BUTTON]) {

            [UIView animateWithDuration:10 delay:0 options:UIViewAnimationOptionLayoutSubviews animations:^{
                button.alpha = 0.00;
            } completion:^(BOOL finished) {
                button.hidden = NO;
            }];
        } else {
            [UIView animateWithDuration:10 delay:0.1 options:UIViewAnimationOptionLayoutSubviews animations:^{
                button.hidden = YES;
                button.alpha = 0.90;
            } completion:nil];
        }
    }

这段代码实际上只在if语句中执行动画,但在else语句中没有其他两行。

我该如何解决这个问题?

感谢

1 个答案:

答案 0 :(得分:2)

您在设置隐藏属性的位置混合了它。试试这个:

for (UIButton *button in self.buttonInView) {
    if ([button.titleLabel.text isEqualToString:TITLE_OF_START_BUTTON]) {

        [UIView animateWithDuration:10 delay:0 options:UIViewAnimationOptionLayoutSubviews animations:^{
            button.alpha = 0.00;
        } completion:^(BOOL finished) {
            button.hidden = YES;
        }];
    } else {
        button.alpha = 0;
        button.hidden = NO;

        [UIView animateWithDuration:10 delay:0.1 options:UIViewAnimationOptionLayoutSubviews animations:^{
            button.alpha = 0.90;
        } completion:nil];
    }
}