【问题标题】:UIAlertView automatic newline gone in iOS8?iOS8 中的 UIAlertView 自动换行符消失了吗?
【发布时间】:2014-12-15 15:00:04
【问题描述】:

UIAlertView 似乎与 iOS8 不兼容。我刚刚发现我所有的多行 UIAlertViews 在 iOS8 中都变成了截断的单行(用于消息)。在 iOS7 中,它们以多行正确显示。

iOS7:

iOS8:

[[[UIAlertView alloc] initWithTitle:@"Namn saknas"
                            message:@"Du måste fylla i ditt namn för att kommentera"
                           delegate:nil
                  cancelButtonTitle:@"OK"
                  otherButtonTitles: nil] show];

我知道 UIAlertController 应该在 iOS8 及更高版本中使用,并且 UIAlertView 自 iOS8 起已弃用。

但在 iOS8 中不应仍像以前(即 iOS7)那样工作吗?如果不是,它不应该从 iOS7 中弃用吗?

或者我在这里遗漏了什么?这不仅仅是一个关于事情应该如何的伪问题 - 我在代码中有 40 多个带有警报视图的位置,而且现在还没有更改所有这些的时间表......

【问题讨论】:

  • 分享你的一些代码。你是如何创建这些换行符的?
  • 这就是问题所在 - 我根本没有创建任何换行符。该消息只是一个很长的 NSString,在 iOS7 中工作得很好......
  • 在上次编辑中添加了代码。
  • 我现在提交了一个错误报告:18719948

标签: ios7 ios8 uialertview uialertcontroller


【解决方案1】:

这个问题现在已经解决了 - 得到了 Apple Engineering 的答复:

“您的示例项目在 UILabel 上声明了一个覆盖 -intrinsicContentSize 的类别。覆盖 UIKit 方法会导致不可预知的行为。”

所以我删除了覆盖,一切正常。

覆盖为:

-(CGSize)intrinsicContentSize {
    CGSize s = [super intrinsicContentSize];
    s = CGSizeMake(s.width, s.height + 4);
    return s;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    相关资源
    最近更新 更多