遵守以下代码:

- (void)hideRectangleWithAnimation:(BOOL)animate completion:(void (^)(void))completionBlock
{
    if (animate)
    {
        // Hide rectangle
        [UIView animateWithDuration:0.3 animations:^{ rect.alpha = 0; } completion:^(BOOL finished){
            completionBlock();
        }
    }
    else
    {
        rect.alpha = 0;
    }
}


有没有一种方法可以不重复属性更改:rect.alpha = 0;两次?

目前这行代码微不足道,但可能会出现更复杂的情况,其中发生了很多事情。

最佳答案

我想我才找到答案。我可以将rect.alpha = 0;放在一个块变量中,并改用它。

void (^animationBlock)(void) = ^{
    rect.alpha = 0;
};

if (animate)
{
    [UIView animateWithDuration:0.3 animations:animationBlock completion:^(BOOL finished){
        completionBlock();
    }];
}
else
{
    animationBlock();
}

关于iphone - 动画与不动画时如何不重复此代码?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7655768/

10-14 20:49