我想我在这里缺少一些简单的东西。我需要创建一个覆盖整个屏幕的半透明UIImageView,包括导航工具栏。我该怎么做?
这就是我要做的......
答案 0 :(得分:17)
这是一个可能的解决方案:
UIImage *image=[UIImage imageNamed:@"whatever.png"];
UIImageView *overlay=[[UIImageView alloc] initWithImage:image];
overlay.alpha=0.5;
[[[[UIApplication sharedApplication] delegate] window] addSubview:overlay];
编辑:
[overlay release]
。答案 1 :(得分:1)
要稍微关注上述答案,您只需要清楚视图如何剪辑到他们“拥有”设备屏幕的哪些部分。
关键点是,在导航视图中,导航栏本身不是[myController view]
的一部分 - 您的视图控制器的视图就是栏下面的所有内容,您在该视图中执行的任何操作都会剪切到下面的矩形酒吧。
但是,该栏是[myAppDelegate window]
的一部分。窗口基本上是设备的整个屏幕,而视图是负责管理其特定边界的子部分。因此,调用[[myAppDelegate window] addSubView:]
会显示在[[myViewController view] addSubView:]
不会显示的栏上方。