【发布时间】:2010-04-19 11:00:52
【问题描述】:
我想创建一个视图 (UIControl),它会阻止所有输入并在验证用户身份时显示 UIActivityIndicatorView。
UIActionSheet 和 UIAlertView 都设法在所有其他视图的顶部添加一个黑色半透明视图以阻止输入,我想做类似的事情。
我尝试将我的视图添加到 [[UIApplication sharedApplication] windows] 数组中的顶部 UIWindow,虽然这确实将它放在 UIKeyboard 上方(如果它是可见的),但它不会将它放在 StatusBar 上方(这使得感觉)。
我的下一个尝试是扩展 UIAlertView,删除其所有子视图并设置其 layer.contents = nil,然后将 ActivityIndicator 添加为子视图。这很好用,但是当您将 UIAlertView 调用为“显示”时,我似乎无法终止它的默认弹性过渡。
有没有人指出解决这个问题的最佳方法,让我可以完全控制?
哦,我知道阻止输入不是很好,但我确实确保它只在短时间内,它的好处是让用户清楚地知道他们的操作(必须完成才能让他们继续进行)正在处理中。
【问题讨论】:
-
为什么要“覆盖”状态栏?为什么不隐藏它,让它是半透明的,或者完全忽略它?如果我没记错的话,状态栏对触摸没有反应。
-
我希望它看起来像在覆盖视图下。这使用户清楚地知道他们当前无法交互。不幸的是,使其半透明并不能实现这一点,如果只是在身份验证期间隐藏它会看起来很奇怪。它确实对触摸有反应。默认是将活动的 UIScrollView 滚动到顶部。
标签: iphone objective-c cocoa-touch