我有一個UIButton
指定寬度爲200.其autoresizingMask
屬性設置爲UIViewAutoresizingFlexibleWidth
。 A UIImage
應用於此按鈕的backgroundImage
屬性。此UIimage
定義如下:UIButton backgroundImage stretchableImageWithLeftCapWidth:topCapHeight問題
[[UIImage imageNamed:@"buttonimage.png"] stretchableImageWithLeftCapWidth:10 topCapHeight:0]
buttonimage.png
具有400像素的寬度(按鈕的2倍的寬度,因爲視網膜分辨率的),代表了圓角矩形。在肖像模式下,一切都很好。只要用戶旋轉設備並且iPhone進入橫向模式,UIButton
就會拉伸。由於此行爲,圖像的左側圓角邊框保持不變(stretchableImageWithLeftCapWidth:
),但右側邊角也拉伸。是否有我忘記設置的屬性,確保只有一個指定的像素(例如第十個像素)被拉伸,而其他任何像素都保留了它的尺寸?
在此先感謝!
編輯:如果我使用較小的圖像,這已經拉伸到肖像模式,這兩個邊界似乎被擴大。
解決! 如果你的形象被稱爲「myImage.png」,它是視網膜的版本,只是把它稱爲「[email protected]」
您應該在非視網膜大小中提供'buttonimage.png',並在視網膜大小中提供第二個版本名字'buttonimage @ 2x.png'。也許這解決了你的問題。 – 2011-04-23 19:41:54
這種行爲在非視網膜和視網膜分辨率支持設備上都會出現。如果我正確理解這一點,那麼[email protected]文件是唯一可以通過視網膜分辨率設備訪問的文件,所以這沒有什麼區別。如我錯了請糾正我。 – fscheidl 2011-04-23 19:46:00
沒錯。我已經嘗試了一個簡單的例子,並且有一個有趣的效果,當我將左帽設置爲像3px這樣的小量時,它會沿着整個按鈕對此部分進行塗抹,其餘部分正確繪製爲與右側對齊。景觀看起來一樣。我的按鈕圖像是50x50,當我將左帽設置爲21px時,它恰好在圓角後面,即使在風景中也看起來很好。也許一些嘗試和錯誤會做? – 2011-04-23 20:02:28