Ios 关闭UIViewController时闪烁

Ios 关闭UIViewController时闪烁,ios,objective-c,uiviewcontroller,Ios,Objective C,Uiviewcontroller,我有一个UIViewController我正在使用自定义转换(用于模糊)进行演示。当我按下关闭按钮时,我希望UIViewController淡出。我降低了视图的不透明度,它会很好地淡出。在完成块中,我关闭UIViewController。它被解雇了,但是在解雇结束后很快就会出现闪烁 以下是我正在做的: - (IBAction)closePressed:(id)sender { [CATransaction setCompletionBlock:^{ [self dism

我有一个
UIViewController
我正在使用自定义转换(用于模糊)进行演示。当我按下关闭按钮时,我希望
UIViewController
淡出。我降低了视图的不透明度,它会很好地淡出。在完成块中,我关闭
UIViewController
。它被解雇了,但是在解雇结束后很快就会出现闪烁

以下是我正在做的:

- (IBAction)closePressed:(id)sender {

    [CATransaction setCompletionBlock:^{
        [self dismissViewControllerAnimated:NO completion:nil];
    }];
    CABasicAnimation *fadeOut = [CABasicAnimation animationWithKeyPath:@"opacity"];
    fadeOut.fromValue = [NSNumber numberWithFloat:1.0];
    fadeOut.toValue = [NSNumber numberWithFloat:0.0];
    fadeOut.duration = 0.4f;
    [self.view.layer addAnimation:fadeOut forKey:@"fadeOut"];
}

无法粘贴屏幕截图或任何快速发生的内容。在显示父级
UIViewController
之前会出现闪烁。

您是否按如下方式进行了尝试

[UIView animateWithDuration:0.4 animations:^
    {
       self.view.alpha = 0.0;

    } completion:^(BOOL finished)
    {
        [self dismissViewControllerAnimated:NO completion:nil];
    }];

您可以使用
self.modalTransitionStyle=UIModalTransitionStyleCrossDissolve代替上述方法

您是否按以下方式进行了尝试

[UIView animateWithDuration:0.4 animations:^
    {
       self.view.alpha = 0.0;

    } completion:^(BOOL finished)
    {
        [self dismissViewControllerAnimated:NO completion:nil];
    }];

您可以使用
self.modalTransitionStyle=UIModalTransitionStyleCrossDissolve代替上述方法

您是否按以下方式进行了尝试

[UIView animateWithDuration:0.4 animations:^
    {
       self.view.alpha = 0.0;

    } completion:^(BOOL finished)
    {
        [self dismissViewControllerAnimated:NO completion:nil];
    }];

您可以使用
self.modalTransitionStyle=UIModalTransitionStyleCrossDissolve代替上述方法

您是否按以下方式进行了尝试

[UIView animateWithDuration:0.4 animations:^
    {
       self.view.alpha = 0.0;

    } completion:^(BOOL finished)
    {
        [self dismissViewControllerAnimated:NO completion:nil];
    }];

您可以使用
self.modalTransitionStyle=UIModalTransitionStyleCrossDissolve代替上述方法

尝试将该viewcontroller的不透明设置切换为是/否


默认值为“是”,因此您可能希望尝试“否”

尝试将该viewcontroller的不透明设置切换为“是/否”


默认值为“是”,因此您可能希望尝试“否”

尝试将该viewcontroller的不透明设置切换为“是/否”


默认值为“是”,因此您可能希望尝试“否”

尝试将该viewcontroller的不透明设置切换为“是/否”


默认值为“是”,因此当您通过
CAAnimation
设置动画时,您可能希望尝试“否”,因为您实际上是在设置视图的表示层动画,而不是实际视图的动画。因此,当动画结束时,将以动画开始前的视图结束

为了避免这种情况,请在
addAnimation:forKey:

fadeOut.removedOnCompletion = NO;
fadeOut.fillMode = kCAFillModeForwards;

当您通过
CAAnimation
设置动画时,实际上是在为视图的表示层设置动画,而不是实际视图。因此,当动画结束时,将以动画开始前的视图结束

为了避免这种情况,请在
addAnimation:forKey:

fadeOut.removedOnCompletion = NO;
fadeOut.fillMode = kCAFillModeForwards;

当您通过
CAAnimation
设置动画时,实际上是在为视图的表示层设置动画,而不是实际视图。因此,当动画结束时,将以动画开始前的视图结束

为了避免这种情况,请在
addAnimation:forKey:

fadeOut.removedOnCompletion = NO;
fadeOut.fillMode = kCAFillModeForwards;

当您通过
CAAnimation
设置动画时,实际上是在为视图的表示层设置动画,而不是实际视图。因此,当动画结束时,将以动画开始前的视图结束

为了避免这种情况,请在
addAnimation:forKey:

fadeOut.removedOnCompletion = NO;
fadeOut.fillMode = kCAFillModeForwards;


来个短片怎么样?这会让你更容易理解闪烁的位置。那么一段短视频呢?这会让你更容易理解闪烁的位置。那么一段短视频呢?这会让你更容易理解闪烁的位置。那么一段短视频呢?会更容易理解闪烁的位置。切换含义?换成什么?我在完成块中或动画中,在初始化viewcontrollerNot帮助时,将其更改为0.0f right(右)。我在按下父VC中的设置按钮时尝试过这样做。还是没什么,换个意思?换成什么?我在完成块中或动画中,在初始化viewcontrollerNot帮助时,将其更改为0.0f right(右)。我在按下父VC中的设置按钮时尝试过这样做。还是没什么,换个意思?换成什么?我在完成块中或动画中,在初始化viewcontrollerNot帮助时,将其更改为0.0f right(右)。我在按下父VC中的设置按钮时尝试过这样做。还是没什么,换个意思?换成什么?我在完成块中或动画中,在初始化viewcontrollerNot帮助时,将其更改为0.0f right(右)。我在按下父VC中的设置按钮时尝试过这样做。还是没什么。