2011-09-07 46 views
0

我有一個盒子,我想成爲expanable只在它的寬度,同時仍然保持圓角,我有。我在Photoshop中製作了圖形。它的寬度正好是13px,所以每個角落有6個,中間要重複1個。stretchableImageWithLeftCapWidth導致角落會模糊

UIImage* img = [[UIImage imageNamed:@"screen_displayer_rounded.png"] stretchableImageWithLeftCapWidth:6 topCapHeight:6]; 
    CGRect rect = CGRectMake(272.0f, 14.0f, 100.0f, 30.0f); 
    UIImageView* imgView = [[UIImageView alloc] initWithFrame:rect]; 
    [imgView setImage:img]; 

有誰能告訴我爲什麼會發生這種情況嗎?

謝謝!

回答

1

我發現,你不能僅僅依靠stretchableImageWithLeftCapWidth得到它正確調整大小。

我通常使用的contentStretch屬性,它是適用於所有的UIView子類的我,當stretchableImageWithLeftCapWidth不工作。

簽出關於contentStretch屬性的UIView apple文檔。

+0

-1,因爲這顯然是錯誤的。在我編寫的許多應用程序中,stretchableImageWithLeftCapWidth的作用就像一個魅力。 – mvds

+0

這個平原是如何錯誤的?使用stretchableImageWithLeftCapWidth找到成功是件好事,但它不適用於所有情況。我在很多場合使用了contentStretch,其中stretchableImageWithLeftCapWidth只是沒有剪裁它。 – Shaun

0

只是檢查 - 你也許視網膜顯示器上觀看非視網膜圖像?這肯定會把它伸出。

+0

它模糊了這兩方面,而不僅僅是一個:( –

+0

如果我剛纔添加的圖像,未延伸的角落就好了,漂亮清脆的,但如果我連拉伸它+ 1像素比正常的更廣泛的角落都還正確的半徑,只是模糊 –

+0

看到你已經把高度設置爲14px,我假設你垂直方向上也有6px的圓角。你可能會在這裏發佈圖片James?你的代碼看起來應該是成功的。 – Madhu

1

您應該檢查視圖是否不以非整數位置結束。如果選擇「使用性能工具運行>核心動畫」並選中「顏色未對齊的圖像」,所有未對齊的圖像將顯示爲紫色。

如果您的圖像是紫色,請嘗試找出哪個超級視圖造成這種情況。注意事情的中心,因爲這是造成這些問題的常見原因。

+0

上的Xcode 4這麼做? –

+0

說不上什麼祕訣,但一定要在那裏。這是儀器的一部分的XCode 3 – mvds

+0

沒有看到它,但我雙重檢查一切我得到了,沒辦法是圖像被放置一半一個px和另一半,它看起來好像xcode由於某種原因模糊了實際的角落 –