2010-06-07 41 views
0

我想用一個UIImage與stretchableImageWithLeftCapWidth在我的UIImageView中設置圖像,但遇到一個奇怪的縮放比例錯誤。基本上將我的圖像描繪爲一個寬度爲31像素的橢圓。左側和右側15個像素是大寫字母,中間單個像素是縮放部分。StretchableImageWithLeftCapWidth伸展錯誤部分

這可以正常工作,如果我將左帽設置爲15.但是,如果我將它設置爲,說,4.我期望得到一個'中心'部分,有點彎曲,因爲它跨越中心結尾有點捏。

我得到的是左帽似乎正確,其次是一個長的中間部分,就好像我縮放像素5的單個像素,然後是圖像右側的一部分,它擴展並關閉一個寬度大約是原始圖像寬度的兩倍。由此產生的圖像就像一個溫度計燈泡。

有沒有人看到過這種奇怪的行爲,並可能知道發生了什麼?

回答

2

你的觀察是正確的,喬伊。 StretchableImageWithLeftCapWidth不會像您期望的那樣展開圖像的整個中心。它只擴展了左邊帽子右側的像素列和頂部帽子下面的像素行!

改用UIView的contentStretch屬性,你的問題就解決了。此優點的另一個優點是contentStretch也可以正確縮小圖形,而StretchableImageWithLeftCapWidth僅在增大圖形時才起作用。

0

不知道我是否正確,但LeftCapWidth等是爲圓角而製作的,圓角半徑內的矩形中的所有內容都被拉伸以適合目標按鈕上的「大寫字母」之間的空間等。

因此,如果你的橢圓比4 x 2 = 8更高或更寬,那麼中間矩形中的任何東西都將被拉伸。你的是,所以它至少看起來有點醜陋!但是,如果它不是對稱的,某種東西已經影響了延伸。可能與原點或框架有關,或者它被設置,或者它被設置了兩次,或者你有兩個不同的拉伸圖像在彼此的頂部給溫度計看。

我曾經在同一個地方創建了兩個相同的按鈕,使用相同的保留對象 - 當然扔掉了前一個按鈕。然後我想知道爲什麼當我將alpha設置爲0時,按鈕沒有消失......但它確實,只是它下面有一個「死」的相同按鈕:)