3

我们可以使用以下代码(如下)创建非标准尺寸的表单视图,但生成的视图不是居中的——x 坐标始终是标准尺寸的表单视图所在的位置。更改视图和超级视图的中心属性不会以有用的方式影响任何内容。我们如何使用正确居中的自定义表单大小?

将以下代码添加到显示为 的视图控制器中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;
}
4

1 回答 1

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 或其他一些句柄来侥幸成功。

于 2013-01-14T18:19:47.913 回答