我有一个关于屏幕转换的问题.
为了传输屏幕,我经常使用presentViewController方法.
NextViewController *nextViewController = [[NextViewController alloc] init];
nextViewController.view.frame = CGRectMake(10, 10, 200, 400);
[self presentViewController:nextViewController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
但是,我实现的view.frame设置未应用.
以下代码正确运行.
NextViewController *nextViewController = [[NextViewController alloc] init];
[self presentViewController:nextViewController animated:YES completion:nil];
nextViewController.view.frame = CGRectMake(10, 10, 200, 400);
Run Code Online (Sandbox Code Playgroud)
这些代码有什么区别?view.frame是否在presentViewController方法中重新定义?
谢谢.
NextViewController *nextViewController = [[NextViewController alloc] init];
nextViewController.view.frame = CGRectMake(10, 10, 200, 400);
[self presentViewController:nextViewController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
上面的代码无法正常工作,因为您正在设置尚未创建的nextViewController的视图.
因此,在下一个代码中,首先加载视图控制器,然后更改加载视图的框架.
=========================编辑======================== ===
如果要直接在视图控制器中设置框架,请将视图与a绑定IBOutlet
,然后再插入
- (void) viewDidAppear:(BOOL)animated
{
//set the frame here
self.myView.frame = CGRectMake(10, 10, 200, 400);
}
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你 :)
归档时间: |
|
查看次数: |
4186 次 |
最近记录: |