【问题标题】:Annoying Flash on UIView Flip TransitionUIView 翻转过渡时烦人的 Flash
【发布时间】:2012-09-29 21:59:40
【问题描述】:

我正在尝试使用 UIView.transitionFromView:toView: 在视图 A-1 和背面视图 A-2 之间进行翻转过渡。这些视图有许多同级视图,并且由于我不希望整个超级视图旋转,因此我将一个临时容器视图插入到视图层次结构中,该视图足够大以包含 A-1 和 A-2 并插入 A-1在过渡之前立即进入。

问题是视图A-1在过渡开始时就消失了,并带有难看的闪光,这很难看。我认为当我将它插入到临时容器视图中时它可能会消失(因为将它添加到容器中会隐含地将其从其正常的超级视图中删除),但据我所知,它当时并没有发生。我正在使用的代码如下所示:

[container addSubview:fromView];
[self.view addSubview:container];

[UIView transitionFromView:fromView toView:toView duration:2
                   options:UIViewAnimationOptionTransitionFlipFromRight
                   ... ];

我在完成例程中解开并删除了容器,我没有在这里显示,因为在代码执行之前会出现闪存问题。

我是否必须在 CALayer 级别执行此操作以避免此问题?我是否误解了视图到视图的转换应该如何工作?任何想法将不胜感激, 霍华德

【问题讨论】:

    标签: ios graphics


    【解决方案1】:

    知道了!我应该知道,因为我过去曾被这个咬过(并且愚蠢地认为我再也不会犯同样的错误了。:-) 这都是关于那个神奇的“重绘时刻”的事情——在插入临时容器之后进入层次结构并将“fromView”移动到容器中,您需要调用

    [self performSelector:@selector(doAnimation:) withObject:transitionInfo afterDelay(0)]
    

    返回主运行循环,以便更新的层次结构可以在您实际执行动画之前重新绘制自身。 “transitionInfo”参数只是一个字典,用于将“fromView”和“toView”参数传递给动画例程。

    霍华德

    【讨论】:

      猜你喜欢
      • 2010-11-25
      • 1970-01-01
      • 2019-04-01
      • 1970-01-01
      • 2012-02-18
      • 2019-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多