2014-10-20 53 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; 
}