iOS 7 中的 UIAlertView 样式登录和密码输入

Posted

技术标签:

【中文标题】iOS 7 中的 UIAlertView 样式登录和密码输入【英文标题】:UIAlertViewStyleLoginAndPasswordInput in iOS7 【发布时间】:2013-09-12 08:15:54 【问题描述】:

我正在 ios7 上测试我的工作应用程序。当应用程序启动时,它会要求玩家登录。为了收集用户凭据,我使用了样式为 UIAlertViewStyleLoginAndPasswordInput

的 AlertView

在 iOS6 中看起来不错

但是在 iOS7 上发生了一些奇怪的事情

包含标题的 AlertView UILabel 仍然存在,但它被隐藏了,因为它的高度似乎被高估了。滚动 UILabel 最终会显示标题。

【问题讨论】:

【参考方案1】:

由于我在将应用程序移植到 iOS 7 时对我的工作进行了试验,因此像素存在一些变化。该应用程序必须重新配置为相同。我建议手动调整对话框的高度以适应屏幕。

P.S.:我还在学习阶段,所以如果我说的话不正确,请避免并告诉我。谢谢。

【讨论】:

嗨,killswitch。我宁愿不改变原生视图的高度。我会试一试,但我认为应该有另一种方法来实现这一点。 不是一个好主意...试图改变高度。你可以让它更高,但 Apple 不赞成继承 UIAlertView。你唯一能做的……创造你自己的。我在 *** 上看到了一个,有人为此创建了一个控制器。我……我不需要它,也不想惹它。迟早……它可能会破裂。代码腐烂是一件可怕的事情!一个例子:AlertView 中的 addSubview。让很多人头疼,包括我……直到我用了上面的方法。【参考方案2】:

看起来您正在尝试将标题或消息设置为特殊高度。消除高度变化,让系统自动创建高度。

你没有发布任何代码,所以,我只是猜测。

我刚刚将我的警报视图代码换成了 iOS7,它比旧样式简单得多。 _prompt 这里是一个设置为 UIAlertView 的属性

- (IBAction) addEntryTapped:(id)sender

    [_editorTextView resignFirstResponder];
    [self saveTextChanges];
    [self dismissPopovers];
    _prompt = [[UIAlertView alloc] init];
    // change the UIAlertViewStyle to the one you need to use
    _prompt.alertViewStyle = UIAlertViewStylePlainTextInput;
    UITextField *text = [_prompt textFieldAtIndex:0];
    _textField = text;
    [_prompt setDelegate:self];
    [_prompt setTitle:@"New Entry Title..."];
    [_prompt setMessage:@""];
    [_prompt addButtonWithTitle:@"Cancel"];
    [_prompt addButtonWithTitle:@"OK"];

    [_textField setPlaceholder:@"New Entry Title"];
    _textField.autocapitalizationType = UITextAutocapitalizationTypeWords;
    _textField.autocorrectionType = UITextAutocorrectionTypeNo;

    [_prompt show];

    // set cursor and show keyboard
    [_textField becomeFirstResponder];

【讨论】:

嗨,马克。请尝试将 UIAlterView 样式从 UIAlertViewStylePlainTextInput 更改为 UIAlertViewStyleLoginAndPasswordInput 并让我知道您看到了什么。为您的视图使用横向布局! 我已经在我的登录中使用了相同的格式,并进行了您要求的更改。但是,我对上面的代码做了它,它应该会出现。 视图是否为横向模式?对话框出现时是键盘出现还是最初隐藏?很抱歉向您询问了很多,但我需要了解为什么我的对话框“格式错误”;D 我的应用是为 iPad 设计的……当然,无论方向如何,它都没有问题。刚刚想到...您是在 iPhone 还是 iPhone Retina 中查看屏幕?选择哪个版本时,选择模拟器的retina版本。

以上是关于iOS 7 中的 UIAlertView 样式登录和密码输入的主要内容,如果未能解决你的问题,请参考以下文章

UIAlertView 按钮(子视图)未在 iOS 7 中显示

用于自定义视图的 iOS7 UIAlertView 样式对话框

如何在 IOS 应用程序中使用 UIAlertView 验证登录?

带有 UIActivityIndi​​catorView 的 iOS 7 样式弹出窗口/警报视图

iOS 7 的 UIAlertView/UIAlertController 兼容性

如何在 iOS 7 中向 UIAlertView 添加多个 UITextField?