ipad屏幕右半部分的模态视图?

时间:2012-06-04 12:54:18

标签: ios cocoa-touch ipad ios5 uiviewcontroller

我需要使用以下参数修改视图的模态演示:

1 - 模态视图仅填充ipad的屏幕右半部分 2 - 动画从屏幕的左半部分开始。

我在iosframeworks.com,cocoacontrols.com,大书呆子的书籍,ios食谱,ios推动极限,stackoverflow和谷歌搜索。有可能这样做吗?
感谢您的协助

为了测试,经过两天的搜索答案,我创建了以下代码,我正在执行以下代码,因为根视图控制器CMMainView,viewcontroller CMVistaModal为空,它没有任何覆盖方法,也没有xib也没有另一个变量,设备系列是iPad

-(IBAction)accion:(id)sender
{

CMVistaModal *modal = [[CMVistaModal alloc] init];

[modal setModalPresentationStyle:UIModalPresentationFormSheet];

[self presentViewController:modal animated:NO completion:nil];
[modal.view.superview setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];
[modal.view.superview setFrame:CGRectMake(800, 120, 200, 500)];
[UIView animateWithDuration:1 animations:^{
    modal.view.superview.transform = CGAffineTransformMakeTranslation(-200, 0);
}];
}

我如何执行相同的操作,但是重写CMVistaModal的方法?

2 个答案:

答案 0 :(得分:1)

绝对。只需创建一个新视图并将其添加到现有视图中并将其设置为适当位置。您可以在其后面显示另一个视图,阻止对其他视图的任何触摸。

答案 1 :(得分:0)

一切皆有可能。这取决于你希望投入多少工作。

标准UIModalPresentationFormSheetUIModalPresentationPageSheet免费提供。但你想要的不是标准,所以你必须自己烤。

我在这里要做的是创造一个“假”模态。

XYViewController -> Container View

Container View -> Semi Opaque blocker
               -> Half Screen Content

拦截器覆盖整个屏幕并立即进入并阻止与UI的其余部分进行交互

然后使用标准框架动画从左侧为“半屏幕内容”设置动画。你如何选择解雇这个假模态取决于你,但如果它从左边进来也许应该离开左边。