gpt4 book ai didi

objective-c - presentViewController 会改变 view.frame 吗?

转载 作者:太空狗 更新时间:2023-10-30 03:43:25 25 4
gpt4 key购买 nike

我有一个关于屏幕转换的问题。

为了切换屏幕,我经常使用 presentViewController 方法。

NextViewController *nextViewController = [[NextViewController alloc] init];
nextViewController.view.frame = CGRectMake(10, 10, 200, 400);
[self presentViewController:nextViewController animated:YES completion:nil];

但是,我实现的 view.frame 设置未应用。

以下代码正确运行。

NextViewController *nextViewController = [[NextViewController alloc] init];
[self presentViewController:nextViewController animated:YES completion:nil];
nextViewController.view.frame = CGRectMake(10, 10, 200, 400);

这些代码有什么区别?presentViewController方法中是否重新定义了view.frame?

谢谢。

最佳答案

NextViewController *nextViewController = [[NextViewController alloc] init];
nextViewController.view.frame = CGRectMake(10, 10, 200, 400);
[self presentViewController:nextViewController animated:YES completion:nil];

上面的代码不起作用,因为您正在设置尚未创建的 nextViewController 的 View 。

因此在您的下一个代码中,您首先加载 View Controller ,然后更改加载 View 的框架。

=========================编辑===================== ======

如果您想直接在 View Controller 中设置框架,则将您的 View 与 IBOutlet 绑定(bind),然后在

- (void) viewDidAppear:(BOOL)animated
{
//set the frame here
self.myView.frame = CGRectMake(10, 10, 200, 400);
}

希望对您有所帮助:)

关于objective-c - presentViewController 会改变 view.frame 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13946406/

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