如何在加载之前在中心设置宽度和位置模态对话框?

时间:2013-04-17 13:11:46

标签: ios objective-c modal-dialog

我在viewController中创建了一个模态对话框。

dialogViewController *dialog = [[dialogViewController alloc] init];

dialog.modalPresentationStyle = UIModalPresentationFormSheet;
dialog.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
dialog.indexPath = indexPath;
dialog.campaignArray = self.campaignArray;

dialog.view.superview.frame = CGRectMake(dialog.view.superview.frame.origin.x+250, dialog.view.superview.frame.origin.y, dialog.view.superview.frame.size.width-250, dialog.view.superview.frame.size.height);

[self presentViewController:dialog animated:YES completion:nil];

上面改变了模态对话框的宽度而不是x位置。它适用于modalDialog,但用户可以看到它被调整大小。

2 个答案:

答案 0 :(得分:0)

如果你想使用

UIModalPresentationFormSheet

控制器将居中。这里有非常具体的格式。如果你想要任何不同的东西,你将不得不建立自己的。

  

呈现视图的宽度和高度小于屏幕的宽度和高度,视图以屏幕为中心。如果设备处于横向方向且键盘可见,则向上调整视图的位置以使视图保持可见。所有未覆盖的区域都会变暗以防止用户与其进行交互。

答案 1 :(得分:0)

试试这个:

dialogViewController *dialog = [[dialogViewController alloc] init];

dialog.modalPresentationStyle = UIModalPresentationFormSheet;
dialog.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
dialog.indexPath = indexPath;
dialog.campaignArray = self.campaignArray;

[self presentViewController:dialog animated:YES completion:nil];

CGRect dlgFrame  = dialog.view.superview.frame;
dlgFrame.size.width -= 250.0;
dialog.view.superview.frame = dlgFrame;