我想显示一个提示以获取用户的用户名和密码。
我通过显示 UIAlertView 并将 UITextFields 作为子视图添加到它来做到这一点。
最近我将我的项目转移到 XCode 4.2 并更新了我的所有项目设置。我的基础 SDK 设置为 iOS 5.0,我的部署目标设置为 4.0。
然后我注意到它只是为 armv7 架构构建的,因此我将其更改为包括 armv6,因为我也想支持 iPhone 3G。
这样做之后,我注意到 UIAlertView 没有像以前那样向上移动,现在它在显示时被键盘覆盖。我在Apple文档中读到你不应该继承UIAlertViews(http://developer.apple.com/library/ios/#documentation/uikit/reference/UIAlertView_Class/UIAlertView/UIAlertView.html),所以我改变了我的方式正在做事。这并没有解决问题。
我注意到我可以通过将构建设置 - “仅构建活动架构”设置为“是”来让它在我的手机(iPhone 4,因此 armv7 架构)上工作。
我怀疑这个问题与尝试为 armv6 构建有关(并且确实从我尝试构建的体系结构中删除它会给我正确移动的警报)。
我想我现在应该回答我的问题了……我很难理解为什么会这样。我在某处读到(现在找不到链接),在 iOS 4 及更高版本中向 UIAlertView 添加文本字段时,您不需要手动向上移动警报。由于我正在为至少 iOS 4 构建,这不应该适用于两种架构吗?
另外,我怎样才能让它为 armv6 构建并且仍然有正确移动的警报?
编辑:也许我错了,但我注意到我有 2 个可以将应用程序部署到的手机实例。选择第一个并构建为我提供了一个应用程序,其中 UIAlertViews 在应该向上移动时不会向上移动,但选择第二个可以使其正常工作。会发布截图,但我是新用户,所以我还没有必要的权限......