Ed *_*rty 3 iphone cocoa-touch objective-c
我们正在创建一个沉浸式应用程序,需要具有与a类似的行为UIAlertView,但我们不希望它看起来像系统对话框,我们想要使用我们自己的图形.我完成了很大一部分工作,但是我遇到了一些障碍:
如何让UIView显示在状态栏上方(这样我可以变暗,就像UIAlertView一样)?这可能吗?我已将其添加到窗口中,但它仍显示在状态栏下方.
如何将其显示为部分透明但文本仍然完全不透明?我希望它显示类似于a UIAlertView它应该是半透明的,但是如果我将alpha设置为.8,那么也会减少子视图的alpha.如果我只减少背景图像的alpha,则按钮显示为不透明.如果我减少背景图像和按钮的alpha,则按钮看起来不像是嵌入在背景图像中.我非常希望不必为每个嵌入式按钮排列创建不同的图像
编辑:我还没有找到状态栏问题的解决方案,但我注意到标准的UIAlertView显示在自己的UIWindow中,当我调查它时,我找到了windowLevel属性:
const UIWindowLevel UIWindowLevelNormal;
const UIWindowLevel UIWindowLevelAlert;
const UIWindowLevel UIWindowLevelStatusBar;
Run Code Online (Sandbox Code Playgroud)
使用我自己的UIWindow UIWindowLevelAlert仍然没有让它显示在状态栏上方.我没试过UIWindowLevelStatusBar.
您需要创建一个新窗口,您可以在其中放置警报视图:
UIWindow *alertWindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // you must release the window somewhere, when you do not need it anymore
alertWindow.windowLevel = UIWindowLevelAlert; // puts it above the status bar
alertWindow.backgroundColor = [UIColor clearColor];
UIViewController *alertVC = [[[YourAlertViewController alloc] init] autorelease];
[alertWindow setRootViewController:alertVC];
[alertWindow setHidden:NO];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13462 次 |
| 最近记录: |