【问题标题】:Animated Subviews动画子视图
【发布时间】:2011-06-14 21:09:56
【问题描述】:

我的 Ipad 应用程序中有一个拆分视图控制器,其中详细视图具有 UITableView 的子视图。 我试图实现的功能是在按下子视图上的按钮(信息按钮)时在子视图的相同位置获取信息视图。我需要通过动画获取此信息视图,该动画是当按下信息按钮时,仅该子视图会翻转(UIAnimationOptionFlipFromRight)并且信息视图会显示...

这是尝试实现它的方法 -

-(void) showInfoView: (id)sender
{

    infoView = [[InfoViewController alloc] initWithNibName:@"ViewViewController" bundle:nil];
    infoView.view.frame = CGRectMake(250, 300, 200, 200);

    [UIView transitionWithView:self.view duration:1
                       options:UIViewAnimationOptionTransitionFlipFromRight 
                    animations:^{
                        [self.view addSubview:infoView.view];
                    } 
                    completion:nil];
}

当我运行模拟器并按下任何子视图上的信息按钮时,会发生动画完美地发生,即子视图从右侧翻转但 infoView 没有显示。

如果有人能告诉我哪里出了问题,那就太好了。

【问题讨论】:

    标签: ios ipad uitableview uianimation


    【解决方案1】:

    在屏幕上执行动画的基本步骤如下:

    1. 创建视图。
    2. 将其移至初始(屏幕外)位置
    3. 添加到视图层次结构
    4. 执行动画。

    您似乎跳过了第 3 步,也可能跳过了第 2 步。

    【讨论】:

    • 感谢您的回复.. 但我认为 [self.view addSubview:infoView.view] 是我添加信息视图的方式.. 我错了吗?
    • 是的,但是你把它放错了地方。放在动画调用之前。
    • 谢谢..我试过了,但这似乎也不起作用......我把 [self.view addSubview:infoView.view] 放在 infoView.view.frame = CGRectMake(250, 300 , 200, 200);
    • @learner2010 - 你介意解释一下为什么这个答案是正确的吗? (我不是在抱怨:D,而是想为未来的搜索者澄清一下,因为 cmets 让我看起来好像偏离了轨道。)
    • 好吧..实际上你是对的,因为这是执行动画的方式..所以这就是我接受这个答案的原因......
    【解决方案2】:

    您是否尝试将子视图框架设置为您的父视图的框架,即

     info.View.frame = self.view.frame;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-21
      相关资源
      最近更新 更多