【问题标题】:View doesn't show 2nd time when switching views?切换视图时视图不显示第二次?
【发布时间】:2012-02-02 05:22:46
【问题描述】:

在我的应用程序中,当我使用 UIView 动画切换带有动画的视图时,它在我第一次切换视图时运行良好,因为视图正确滑动到位并且一切正常。但是,如果我切换回原来的视图,然后返回到新视图,它不会显示任何内容,视图是黑色的,但我知道我的方法正在被调用。

我的代码在下面,但有人发现有什么问题吗?

-(void)changeView2ToView3 {
    [view2.view.superview addSubview:view3.view];
    [view3.view setFrame:CGRectMake(0, kHeight, kWidth, kHeight)];
    [UIView animateWithDuration:0.75 
                     animations:^{
                         [view3.view setFrame:CGRectMake(0, 0, kWidth, kHeight)];  
                     }
                     completion:^(BOOL finished){
                         [view2.view removeFromSuperview];
                     }];
}

kHeight 和 kWidth 是屏幕的高度和宽度,它们永远不会是 0 或 nil。

谢谢!

【问题讨论】:

    标签: ios views switch-statement


    【解决方案1】:

    第一次之后,view2.view 的 superview 必须为 nil。所以你必须设置一个变量来保存superview。

    [view2.view removeFromSuperview];
    // now view2.view.superview == nil;
    

    【讨论】:

    • 你能告诉我如何正确地将超级视图设置为 ivar 吗?然后我会接受并投票给你的答案!
    • 顺便说一句,它不是零,我只是用 NSLogs 证明了这一点!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    • 2012-08-27
    相关资源
    最近更新 更多