簡體   English   中英

動畫完成稱為立即完成

[英]animation completion called immediately completion

我現在很困惑。

當值為yes的動畫動作時,此條件是正常的。 但是說明沒有值完成立即調用的情況。

我不知道兩者之間是否有任何區別。

- (void)setDimView : (UIView*)targetView state:(BOOL)state
{
    CGRect screenRect = [[UIScreen mainScreen] bounds];
    UIView *dim = [[UIView alloc]initWithFrame:screenRect];
    dim.tag = TAG;
    if (state)
    {
       dim.alpha = 0.0;
    }


    [UIView transitionWithView:dim duration:0.5 options:UIViewAnimationOptionCurveEaseOut animations:^ {
        if (state)
        {
            [targetView setHidden:NO];
            [targetView addSubview:dim];

            dim.backgroundColor = [UIColor blackColor];
            dim.alpha = 0.6;
        }
        else
        {
            dim.alpha = 0.0;

        }
    }completion:^(BOOL finished) {
        if (!state)
        {
            for (UIView *subview in [targetView subviews])
            {
                if (subview.tag == TAG)
                {
                    [subview removeFromSuperview];
                    [targetView setHidden:YES];
                }
            }
        }
    }];
}

該塊的工作順序首先是動畫塊,然后是完成塊,但是如果您將動畫設置為NO,則立即調用完成。

我不明白你為什么這么困惑嗎?

動畫塊和完成塊之間的區別

動畫塊中的代碼稱為循環。 如果在動畫塊中設置了視圖的幀更改,它將作為動畫執行,需要一段時間來執行您可以配置的代碼。 但是,如果要在完成塊中設置該視圖的幀更改,則它將在動畫完成后一次拉伸。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM