gpt4 book ai didi

iphone - iOS——如何控制模态视图 Controller 的大小?

转载 作者:IT王子 更新时间:2023-10-29 07:48:09 25 4
gpt4 key购买 nike

我正在展示一个模态视图 Controller 。如果重要,它会从底部向上滚动。我如何控制它占据屏幕的哪一部分?

编辑:我在模态视图 Controller 中有以下内容。这没有帮助。

- (void)viewDidLoad {
TestResultView *trv = [[TestResultView alloc]initWithTest: [Model m].currentTest];
self.view = trv;
trv.frame = CGRectMake(0, 320, 320, 160);
[trv release];
[super viewDidLoad];
}

最佳答案

您可以修改 View Controller 的框架,但是如果您使用的是 UIViewController 的 -presentModalViewController:animated: 方法,一旦您的模态视图完成动画到屏幕上,后面的 View 将被卸载(这假设您在一个 iPhone),你会看到一个白色的屏幕,你的背景 View 应该在那里。 iOS 假定您的模态视图 Controller 将是全屏 View Controller ,并转储其他 View 以节省内存。

如果您真的想在屏幕的一部分上显示一个 View ,您应该将 UIView(没有 UIViewController)作为 subview 添加到当前 UIViewController 的 View 中,然后自己在屏幕上制作动画。我认为这样的事情会在你的 UIViewController 类中工作,它将呈现 View :

// Add the view as a subview and position it offscreen just below the current view
UIView *myHalfView = [[UIView alloc] initWithFrame:someAppropriateFrame];
[self.view addSubview:myHalfView];
CGRect offScreenFrame = myHalfView.bounds;
offScreenFrame.origin = CGPointMake(0.0, CGRectGetMaxY(self.view.frame));

// Now animate the view upwards
[UIView beginAnimations:nil context:nil];
// Move the view upwards the height of your sliding view so it's entirely onscreen
myHalfView.center = CGPointMake(myHalfView.center.x, myHalfView.center.y - myHalfView.bounds.size.height);
[UIView commitAnimations];
[myHalfView release];

对于奖励积分,您可以通过设置淡入 View

myHalfView.alpha = 0.0;

在 UIView 动画 block 之前,以及设置

myHalfView.alpha = 1.0;

在为中心属性设置动画后的 block 内。

完成后,您可以执行类似但相反的操作以将 View 滑出屏幕。您可以将 animationDidStop 选择器添加到 UIView 动画 block ,以便在 View 滑出屏幕时收到通知,以便您可以将其从 View 层次结构中删除。

从美学的角度来看,您还应该注意如何执行此操作,因为向上滑动 View 是一种标准行为,如果您的 View 看起来像普通 View 但中途停止,用户可能会觉得(即使是短暂的)该应用程序已卡住。他们会解决的,但如果处理不当,会给您的应用留下不好的印象。主要是,我会避免使用标准的全屏提示,例如在 View 顶部包含一个 UINavigationController 来帮助用户了解正在发生的事情。半张纸在 iPhone 上往往是 UIActionSheets,因此请朝这个方向思考。

关于iphone - iOS——如何控制模态视图 Controller 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4231022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com