在运行时获取 UIModalPresentationFormSheet 的大小
Obtaining the size of a UIModalPresentationFormSheet at runtime
我正在为 iPad 制作一个应用程序,它主要是一个带有设置按钮的 UISplitViewController
应用程序,该按钮使用 UIModalPresentationFormSheet
打开设置视图控制器,如下所示:
SettingsViewController * settingsViewController = [[SettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
settingsViewController.managedObjectContext = self.managedObjectContext;
UINavigationController * settingsNC = [[UINavigationController alloc] initWithRootViewController:settingsViewController];
settingsNC.modalPresentationStyle = UIModalPresentationFormSheet;
settingsNC.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentViewController:settingsNC animated:YES completion:nil];
在 settingsViewController
的 viewDidLoad
内,我想获得弹出窗口的宽度和高度,我该怎么做?我尝试使用以下内容,但它们都 return 整个 iPad 屏幕尺寸..
NSLog(@"x: %f y: %f ",self.view.bounds.size.width,self.view.bounds.size.height);
NSLog(@"x: %f y: %f ",self.view.frame.size.width,self.view.frame.size.height);
// outputs
// x: 1024.000000 y: 748.000000
// x: 1024.000000 y: 748.000000
如有任何帮助,我们将不胜感激!
多亏了 Rory,我才让这个工作正常,只需在 viewWillAppear 方法中调用找出视图控制器的大小即可。当在 viewDidLoad 中调用时,它 returns 是超级视图的边界,这就是它返回整个屏幕尺寸的原因 - 我认为这是由于呈现的视图控制器在 viewDidLoad 之后才在技术上处于活动状态。
-(void)viewWillAppear:(BOOL)animated{
NSLog(@"x: %f y: %f ",self.view.bounds.size.width,self.view.bounds.size.height);
NSLog(@"x: %f y: %f ",self.view.frame.size.width,self.view.frame.size.height);
}
// outputs
// x: 540.000000 y: 576.000000
// x: 540.000000 y: 576.000000
我正在为 iPad 制作一个应用程序,它主要是一个带有设置按钮的 UISplitViewController
应用程序,该按钮使用 UIModalPresentationFormSheet
打开设置视图控制器,如下所示:
SettingsViewController * settingsViewController = [[SettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
settingsViewController.managedObjectContext = self.managedObjectContext;
UINavigationController * settingsNC = [[UINavigationController alloc] initWithRootViewController:settingsViewController];
settingsNC.modalPresentationStyle = UIModalPresentationFormSheet;
settingsNC.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentViewController:settingsNC animated:YES completion:nil];
在 settingsViewController
的 viewDidLoad
内,我想获得弹出窗口的宽度和高度,我该怎么做?我尝试使用以下内容,但它们都 return 整个 iPad 屏幕尺寸..
NSLog(@"x: %f y: %f ",self.view.bounds.size.width,self.view.bounds.size.height);
NSLog(@"x: %f y: %f ",self.view.frame.size.width,self.view.frame.size.height);
// outputs
// x: 1024.000000 y: 748.000000
// x: 1024.000000 y: 748.000000
如有任何帮助,我们将不胜感激!
多亏了 Rory,我才让这个工作正常,只需在 viewWillAppear 方法中调用找出视图控制器的大小即可。当在 viewDidLoad 中调用时,它 returns 是超级视图的边界,这就是它返回整个屏幕尺寸的原因 - 我认为这是由于呈现的视图控制器在 viewDidLoad 之后才在技术上处于活动状态。
-(void)viewWillAppear:(BOOL)animated{
NSLog(@"x: %f y: %f ",self.view.bounds.size.width,self.view.bounds.size.height);
NSLog(@"x: %f y: %f ",self.view.frame.size.width,self.view.frame.size.height);
}
// outputs
// x: 540.000000 y: 576.000000
// x: 540.000000 y: 576.000000