2

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

IOS 7: 在此处输入图像描述

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 个带有警报视图的位置,而且现在还没有更改所有这些的时间表......

4

1 回答 1

2

此问题现已解决 - 从 Apple Engineering 得到答案:

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

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

覆盖是:

-(CGSize)intrinsicContentSize {
    CGSize s = [super intrinsicContentSize];
    s = CGSizeMake(s.width, s.height + 4);
    return s;
}
于 2015-02-16T15:46:25.260 回答