3

次のコードを使用して非標準サイズのフォームシート ビューを作成できます (以下を参照)。ビューとスーパービューの center プロパティを変更しても、何の影響もありません。正しく中央に配置されたカスタム フォームシート サイズを使用するにはどうすればよいですか?

として表示されているView Controllerに次のコードを追加します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 に答える