【问题标题】:How do I show a view similar to UIActionSheet, on top of everything that's on the screen如何在屏幕上的所有内容之上显示类似于 UIActionSheet 的视图
【发布时间】:2010-09-29 18:56:23
【问题描述】:

我有一个 UITextField 视图,它是第一响应者。我正在尝试添加一个带有活动指示器的半透明视图,该指示器将涵盖所有内容

现在代码看起来像这样:

CATransition *animation = [CATransition animation];
[animation setType:kCATransitionFade];
[self.window.layer addAnimation:animation forKey:@"fade in spinner"];
[self.window addSubview:spinnerView];

当视图没有活动的 UITextField 时,这很有效,但如果有,虚拟键盘会设法保持在我的 spinnerView 上方

根据我的阅读,“模态”子视图(例如 UIActionSheet 和 UIAlertView)使用单独的 UIWindow 来成为真正的模态,但同时 Apple 建议不要在您的应用中创建超过 1 个窗口。

任何见解将不胜感激

【问题讨论】:

  • 我忘了说,上面的代码现在在AppDelegate里面,所以self指的是AppDelegate实例。

标签: iphone modal-dialog uiactionsheet uiwindow layer


【解决方案1】:

问题是键盘出现在它自己的窗口中,它位于窗口的顶部。因此,如果您希望您的视图始终位于顶部,您应该在单独的窗口中创建它。

【讨论】:

  • 这就是我在问题中提到的,但是,Apple 再次告诉我们不要创建额外的窗口,所以我想知道是否有任何其他方法是可能的。如果没有,你能提供一个正确使用窗户的例子吗?我试图找到一些可用的东西或编写我自己的代码,但窗口永远不会出现:(
  • 如果背景中的键盘对您的应用程序来说并不重要,您可以在显示该视图之前简单地隐藏它,并在隐藏视图时再次显示它。无论如何我会尝试解决显示窗口的问题,如果它有效,我会告诉你=)
  • 对我来说似乎不可能...自从找到答案后将标记为已解决
猜你喜欢
  • 2014-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-03
  • 1970-01-01
  • 2016-01-10
  • 2015-06-21
相关资源
最近更新 更多