【问题标题】:UINavigationController override push from Right to Left showing black backgroundUINavigationController 覆盖从右到左的推送显示黑色背景
【发布时间】:2014-06-29 13:14:33
【问题描述】:

有谁知道为什么在覆盖 push 或 pop to right to left 时它会在 push it self 后面显示这条黑色褪色线?

附上显示问题的图片:

这是我用来推送的:

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    [super pushViewController:viewController animated:NO];
    if (animated)
    {
        CATransition *transition = [CATransition animation];
        transition.duration = TRANSITION_DURATION;
        transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault];
        transition.type = kCATransitionPush;
        transition.subtype = kCATransitionFromLeft;
        [self.view.layer addAnimation:transition forKey:nil];
    }
}

这是给流行音乐的:

- (UIViewController *)popViewControllerAnimated:(BOOL)animated
{
    if (animated)
    {
        CATransition *transition = [CATransition animation];
        transition.duration = TRANSITION_DURATION;
        transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault];
        transition.type = kCATransitionPush;
        transition.subtype = kCATransitionFromRight;
        [self.view.layer addAnimation:transition forKey:nil];
    }
    return [super popViewControllerAnimated:NO];
}

【问题讨论】:

标签: ios objective-c uinavigationcontroller pushviewcontroller


【解决方案1】:

而不是 [self.view.layer addAnimation:transition forKey:nil] 你应该写 [self.navigationController.view.layer addAnimation:transition forKey:kCATransition];

【讨论】:

    【解决方案2】:

    我在一些视图控制器中设置了"self.view.translatesAutoresizingMaskIntoConstraints = NO;"。删除此行修复了不规则动画和黑屏问题。

    【讨论】:

      猜你喜欢
      • 2021-11-28
      • 2011-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-18
      • 1970-01-01
      相关资源
      最近更新 更多