1

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

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

我在 iosframeworks.com、cocoacontrols.com、big nerd rach 的书籍、ios 食谱、ios 突破极限、stackoverflow 和谷歌中进行了搜索。有可能这样做吗?
感谢你的协助

为了测试,经过两天的搜索答案,我创建了以下代码,我正在执行以下代码,因为根视图控制器CMMainView,视图控制器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 中的方法?

4

2 回答 2

1

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

于 2012-06-04T13:04:33.833 回答
0

世事皆可能。这仅取决于您希望投入多少工作。

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

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

XYViewController -> Container View

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

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

然后使用标准帧动画从左侧对“半屏内容”进行动画处理。你如何选择关闭这个假模态取决于你,但如果它从左边进来,也许它应该离开左边。

于 2012-06-04T13:10:01.477 回答