【问题标题】:How to slide in a UIView in a portrait mode application?如何在纵向模式应用程序中滑入 UIView?
【发布时间】:2024-04-24 21:30:02
【问题描述】:

我正在开发一个仅在纵向模式下运行的 iPhone 应用程序。这个应用程序只有视图控制器和 1 个接口文件 (.xib)。当用户点击工具栏/导航栏上的按钮时,我想在一些额外的视图中滑动。比如说导航栏上的信息按钮。当我单击它时,UIView 应该从底部滑入。当用户点击该视图上的完成按钮时,该视图会向下滑动。我在同一个 xib 中为这些视图制作了单独的 uiview。我还研究了其他人的几个过渡示例,但无法理解这个概念。谁能给我一些指示?

【问题讨论】:

    标签: iphone objective-c cocoa-touch uiview landscape-portrait


    【解决方案1】:

    你可以通过动画来重置帧

    UIView *view= [[UIView alloc] initWithFrame:CGRectMake(0.0f,-100.0f,320.0f,100.0f)];
    
    [UIView beginAnimations:nil context:nil];  
    [UIView setAnimationDuration:1.0];  
    [UIView setAnimationTransition:UIViewAnimationTransitionNone forView:[self view]      cache:YES];  
    
    [view setFrame:CGRectMake(0.0f,0.0f,320.0f,100.0f)];
    
    [UIView commitAnimations];
    

    【讨论】:

    • 我对此很陌生。你能告诉我你到底在做什么吗?我想给幻灯片效果,根据你给我的东西,我想我会得到 culr 效果,之后它会显示相同的视图。我希望它显示其他视图。
    • 在上面的代码中,视图最初是在屏幕外,因为 Y 坐标是 -100。然后开始一个动画块,视图框架改变到它的最终位置(Y=0)。最后 commitAnimations 启动动画,视图将从其原始位置动画到最终位置。
    • 谢谢。像魅力一样工作:) @ Progrmr:感谢您的解释:)
    • @Sumit Lonkar 很高兴知道它对你有用.. 我要去提供任何细节.. 你可以投票支持@progrmr 的评论:)
    • 我之前做过 n 又做了一次 :)
    【解决方案2】:

    我认为您的意思是模态视图转换。就像您在 iPhone 上输入礼品卡时应用商店所做的一样。

    例子:

    UIViewController *controllerForSecondView = ..;
    controllerForSecondView.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
    [self presentModalViewController:controllerForSecondView animated:YES];
    

    然后在第二个xib中创建一个完成按钮并调用:

    dismissModalViewController
    

    【讨论】:

    • 它不是视图控制器,它只是 UIview。我本可以使用您的建议,但我对与 rootviewcontroller 关联的视图有几个控件。
    最近更新 更多