2011-01-14 32 views
1

我想在游戏中显示一个弹出窗口,并要求玩家按下一些按钮,以便他们可以继续。我想让当前视图的一部分保持可见状态,这样我就不需要在模式弹出框中重新创建它。在这个观点中已经提出了作出决定所需的信息。我正在使用IB来完成大部分工作。我无法弄清楚(如果甚至可能的话)是如何显示比屏幕高度更短的视图...如何显示未填满屏幕的视图?

回答

0

子类UIView具有自定义视图,除了需要它的位置外透明。然后将其用作模态视图或将其置于堆栈层次结构的顶部。

同样从你的问题,它听起来像你可能会感兴趣的UIAlertView子类和创建'弹出'的方式。关于此的一篇好文章见于Alert View with Prompt以及Custom AlertView Background

+0

那不会在应用商店中飞... – gabaum10 2011-01-14 20:02:35

+0

哪个链接?我没有仔细看看第一个,但第二个是好的..并允许公开课的子类? – 2011-01-14 20:11:52

+0

当我正在寻找这个问题的解决方案时,我被告知操纵这样的警报视图不会飞,因为它会通过更改苹果默认行为来“混淆用户”。让我看看我能否找到支持文档... – gabaum10 2011-01-14 20:27:56

1

你不能用模态视图控制器来做到这一点。相反,创建/制作视图(而不是UIViewController),根据需要调整它的大小并将其添加到您的视图中并在完成后自行移除它。

1

只需添加一个子视图。尽管如此,它不能在IB中完成,但它需要在代码中完成。

这里有一个子视图的一个简单的例子:

CGRect myFrame = CGRectMake(0, 0, 300, 200); //put the size/coordinates for your view here 
UIView *theSubview = [[UIView alloc] initWithFrame:myFrame]; 
theSubview.backgroundColor = [UIColor blackColor]; 
[self.view addSubview:theSubview]; 
[theSubview release]; 
0

我以前做过类似的措施。我所做的是在IB中创建一个视图,并使背景透明。然后,我在IB中为该视图添加了一个子视图,并将其大小调整为所需的大小。你想确保子视图不像背景那样透明。

然后我通过ModalViewController

[self presentModalViewController:customModalView animated:YES]; 

这个伟大的工程,你可以自定义背景中显示它。例如,如果您需要较深的叠加层(类似于表单模式窗口),则可以将主视图背景变为黑色并将不透明度更改为25%。希望有所帮助...