【问题标题】:How can I stop the "from" view from becoming black when presenting another view controller?呈现另一个视图控制器时,如何阻止“来自”视图变黑?
【发布时间】:2013-09-22 14:48:47
【问题描述】:

我有两个视图控制器,分别称为“ViewControllerA”和“ViewControllerB”。当应用程序加载时,会显示 ViewControllerA。在 ViewControllerA 的 touchesEnded:withEvent: 中,它调用 ViewControllerB 上的 presentViewController:。 ViewControllerB 的加载工作正常;唯一的问题是当它们转换时, ViewControllerA 变黑。即使在转换到 ViewControllerB 时,如何让 ViewControllerA 继续查看其内容?如果相关,我会使用自定义转换,此处演示:

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.7f];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationRepeatCount:1.0f];
[UIView setAnimationRepeatAutoreverses:NO];
[UIView setAnimationDelegate:self];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];

toViewController.view.frame = self.view.bounds;
[self presentViewController:toViewController animated:NO completion:nil];

[UIView commitAnimations];

【问题讨论】:

  • 这个动画应该做什么? toViewController.view 的边界是什么?
  • @rdelmar - 最初,边界覆盖地图上的一个小图块,例如屏幕上的一个红点 in this image,当点击该图块时,边界会扩大以填充屏幕。它旨在给用户一种放大红点(代表城市)的感觉。动画效果很好;只是当动画开始时,我正在转换的视图变黑了。

标签: ios objective-c uiviewcontroller transition ios7


【解决方案1】:

首先,您应该使用自 iOS 4 以来推荐的新的基于块的方法。如果您使用具有完成块的方法,您可以在那里执行 presentViewController:animated (当您呈现带有动画的视图控制器时 NO ,它会立即删除旧控制器的视图,所以这是你的问题)。这是一个将视图从小尺寸扩展到全尺寸的示例:

-(IBAction)doStuff:(id)sender {
    self.toViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"ToVC"];
    self.toViewController.view.transform = CGAffineTransformMakeScale(.01, .01);
    [self.view.window addSubview:self.toViewController.view];
    [UIView animateWithDuration:2.0 animations:^{
        self.toViewController.view.transform = CGAffineTransformIdentity;
    } completion:^(BOOL finished) {
        [self presentViewController:self.toViewController animated:NO completion:nil];
    }];
}

【讨论】:

  • 忘记了更新的块语法版本,所以谢谢。但是由于某种原因以这种方式为过渡设置动画会导致没有动画;视图控制器立即呈现,没有伴随它增长的动画。
  • @qegal,它对我来说很好,所以我不知道你在做什么不同。
  • 没关系,我忘了添加addSubview: 行。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多