We can create formsheet views of non-standard size using the following bit of code (below), but the resulting view isn’t centered — the x-coordinate is always where a standard sized formsheet view would be. Changing the center property of the view and superview doesn’t affect anything in a useful way. How can we use a custom formsheet size that is correctly centered?
Add the following code to the view controller that is being presented as a 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;
}
I’ve only found success changing the frame after presenting it. I actually do it like so:
But perhaps you could get away with using viewDidAppear or some other handle.