【发布时间】:2009-11-19 18:40:29
【问题描述】:
我们正在创建一个身临其境的应用程序,它需要具有与UIAlertView 非常相似的功能,但我们不希望它看起来像一个系统对话框,我们希望使用我们自己的图形。我已经完成了大部分工作,但我遇到了一些障碍:
如何使 UIView 显示在状态栏上方(这样我就可以变暗,就像
UIAlertView那样)?这可能吗?我已将它添加到窗口中,但它仍然显示在状态栏下方。如何显示部分透明但文本仍然完全不透明?我希望它显示为类似于
UIAlertView,因为它应该是半透明的,但是如果我将 alpha 设置为 0.8,这也会降低子视图的 alpha。如果我只降低背景图像的 alpha,那么按钮会显得不透明。如果我降低背景图像和按钮的 alpha,那么按钮看起来不像嵌入在背景图像中。我非常希望不必为嵌入按钮的每种排列创建不同的图像
编辑:我还没有找到状态栏问题的解决方案,但我注意到标准 UIAlertView 显示在它自己的 UIWindow 中,当我调查它时,我发现windowLevel 属性:
const UIWindowLevel UIWindowLevelNormal;
const UIWindowLevel UIWindowLevelAlert;
const UIWindowLevel UIWindowLevelStatusBar;
使用我自己的 UIWindow 和 UIWindowLevelAlert 仍然没有让它显示在状态栏上方。我没试过UIWindowLevelStatusBar。
【问题讨论】:
-
可能为时已晚,但您可以利用 UIAlertView 而不是编写自己的类。我做了一些子视图挖掘来弄乱按钮等,但我不建议这样做。但是,您可以插入子视图并更改 UIAlertView 的框架,也许这会满足您的需求? UIAlertview 似乎有很多行为,我个人不想复制它。
标签: iphone objective-c cocoa-touch