2013-09-25 55 views
2

我跟隨MessagesTableViewController,並根據文本大小有一個UIImage的上漿方法爲氣泡視圖strech。它與舊的ios版本正常工作,但在ios7,它顯示淺色邊框,因爲我們設置UIEdgeInsetsMake如下。resizableImageWithCapInsets問題在iOS7

+ (UIImage *)bubbleDefaultIncoming 
{ 
    return [[UIImage imageNamed:@"bg-chat-white.png"] makeStretchableDefaultIncoming]; 
} 

- (UIImage *)makeStretchableDefaultIncoming 
{ 

    return [self resizableImageWithCapInsets:UIEdgeInsetsMake(15.0f,20.0f, 15.0f, 20.0f) 
          resizingMode:UIImageResizingModeStretch]; 
} 

在這裏,我附2快照ios6ios7其描述如何氣泡的觀點是奇怪行爲與ios7雖然代碼是相同的。 ios6 bubbleios7 bubble

有人也有同樣的問題,在GITHUB HERE
報道我回顧碼了這麼多,似乎有問題與ios7 resizableImageWithCapInsets。它會生成邊框,因爲我們在該方法中設置了UIEdgeInsetsMake
任何人有想法或解決方案來刪除氣泡視圖的邊界,並使相同的ios6氣泡視圖?
任何幫助將是可觀的。提前致謝。

+1

我讀了github上的那個頁面,我知道它是一個蘋果的bug。 – Renaissance

+0

有沒有克服解決? –

+2

是的,您可以通過確保CGRect均勻並且表格視圖單元格具有均勻高度來解決此問題。看到我的答案。 – Luke

回答

4

當寬度或高度是帶浮點的數字時,透明線會添加到iOS 7中。作爲一種解決方法,您可以對此數字進行四捨五入

+0

你可以看到,我已經使用了UIEdgeInsetsMake(15.0f,20.0f,15.0f,20.0f)這個整數。但還是有白線。 –

+1

圓形數字應該用於您正在繪製的cgrectarea –

3

您需要確保您正在繪製圖像的CGRect是偶數,而不是浮點數。

除此之外,如果您的UITableView具有不同高度的TabViewCells,則還需要確保這些單元格的高度均爲偶數,而不是浮點數。

1

我可以證實這兩個答案都是正確的,但由於您使用的是與我相同的框架,我會給你一個幫助的片段。

只是地板或小房子的大小,你很好走。

- (CGRect)bubbleFrame 
{ 
    CGSize bubbleSize = [JSBubbleView bubbleSizeForText:self.text]; 
    return CGRectMake((self.type == JSBubbleMessageTypeOutgoing ? floor(self.frame.size.width - bubbleSize.width) : 0), 
        kMarginTop, 
        floor(bubbleSize.width), 
        floor(bubbleSize.height)); 
} 

編輯:位置也需要進行四捨五入向上或向下,因爲kMarginTop已經是你只需要它時,它是一個外向的泡沫。和平

+0

當然,我會檢查這一個。謝謝 –