我们可以使用下面的代码(下面)创建非标准大小的表单视图,但生成的视图不居中 - x坐标始终是标准大小的表单视图所在的位置。更改视图和superview的center属性不会以有用的方式影响任何内容。我们如何使用正确居中的自定义表单大小?
将以下代码添加到呈现为UIModalPresentationPageSheet
的视图控制器:
@implementation MySpecialFormsheet {
CGRect _realBounds;
}
- (void)viewDidLoad {
// code below works great, but the resulting view isn't centered.
_realBounds = self.view.bounds;
[super viewDidLoad];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.view.superview.bounds = _realBounds;
}
答案 0 :(得分:2)
我只是在呈现框架后才发现改变框架的成功。我实际上是这样做的:
GameSetupViewController *gameSetup = [[GameSetupViewController alloc] init];
[gameSetup setDelegate:self];
[gameSetup setModalPresentationStyle:UIModalPresentationPageSheet];
[self presentModalViewController:gameSetup animated:YES];
[gameSetup.view.superview setAutoresizingMask:(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth)];
[gameSetup.view.superview setFrame:CGRectMake(64, 64, 896, 640)];
但也许你可以使用viewDidAppear或其他句柄来逃避。