2014-10-20 57 views
2

看来UIAlertView与iOS8不兼容。我刚刚发现,我所有的多行UIAlertViews在iOS8中被截断为单行(用于消息)。在iOS7中,它们以多行显示正确。UIAlertView自动换行失去了iOS8?

iOS7: enter image description here

iOS8上: enter image description here

[[[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个地方带有警报视图,现在还没有在时间表中更改所有这些...

+2

分享一些你的代码。你如何创建这些换行符? – esqew 2014-10-20 15:13:19

+0

这只是问题 - 我没有创建任何换行符。该消息只是一个很长的NSString,在iOS7中工作得很好...... – MickeDG 2014-10-20 15:17:05

+0

在上次编辑中添加了代码。 – MickeDG 2014-10-20 15:24:22

回答

1

此问题现已解决 - 获得了Apple工程师回答:

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

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

改写为:

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