2012-07-19 45 views
0

我有一個在photoshop中創建的按鈕,它已經是用於顯示的確切尺寸。如何使用IB顯示確切的大小按鈕?

在IB中,我創建了一個RRB並將背景圖像設置爲按鈕.png。然而,這不能正確顯示 - 我的.png按鈕和IB提供的按鈕之間有一個白色邊框,特別是在必須有不同半徑的邊角。我嘗試過玩IB的各種場景,但無法讓它消失。

但是,如果不是將.png設置爲背景圖像,而是將其設置爲圖像,那麼它看起來很完美(圖像和背景圖像之間有什麼區別?)。 但是,當將.png設置爲圖像而不是背景時,我根本無法獲得按鈕文本,儘管它將.png設置爲背景圖像。我再次嘗試在IB中設置所有各種設置,但無法顯示文本。

我在做什麼錯,我應該怎麼做才能使它起作用?

我知道我可以用編程方式創建按鈕和文本,但我想了解爲什麼我可以使用IB來使用它。

編輯: 我已將類型更改爲自定義,但仍然無法正常顯示。看到我發佈的圖片,沒有文字的圖片就是它應該如何顯示,以及如果我將.png設置爲圖片而不是背景。第二個是如果我將背景圖像設置爲.png並將按鈕類型設置爲自定義的樣子。第三個是設置爲.png的背景圖像和類型爲圓角矩形。 enter image description here enter image description hereenter image description here

+0

任何截圖? – holex 2012-07-19 15:36:00

回答

0

它看起來像你的按鈕背景圖像不像你的UIButton尺寸相同。

iOS支持一種稱爲「可延伸圖像」的東西,允許您定義圖像的哪一部分應該被拉伸。不幸的是,這不能在Interface Builder中完成。在代碼中,你可以做這樣的:

-(void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    UIImage *stretchableImage = [[someButton backgroundImageForState:UIControlStateNormal] stretchableImageWithLeftCapWidth:5 topCapHeight:5]; 
    [someButton setBackgroundImage:stretchableImage forState:UIControlStateNormal]; 
} 

重要stretchableImageWithLeftCapWidth:topCapHeight:在iOS 5中已過時,但唯一的解決方案,如果你需要支持iOS 4的爲好。如果您只能使用iOS 5,請使用resizableImageWithCapInsets:

+0

在IB中,我確實將按鈕的尺寸設置爲.png尺寸的尺寸,但好像我不得不放棄IB並在代碼中執行(我需要支持4,5和6)。 – Gruntcakes 2012-07-19 16:39:40

+0

如果.png的尺寸與'UIButton'的尺寸完全相同,那麼角落看起來應該是正確的 - 除非您的圖片看起來像這樣... – 2012-07-19 16:44:38

2

使用按鈕式= UIButtonTypeCustom

0

不是使用圓角矩形按鈕類型,按鈕類型設置爲UIButtonTypeCustom。 這將按照您的需要進行,因爲它會將按鈕包裹在您提供的圖像上。

+0

謝謝,我試過了,但它不顯示相同。我在帖子中添加了一些圖片,最上面的是如何將圖片設置爲.png,最下面是如何將圖片設置爲背景圖片並將其設置爲自定義類型。 – Gruntcakes 2012-07-19 15:52:09

+0

是否也將按鈕類型設置爲自定義的第一個圖像? – 2012-07-19 15:55:15

+0

第一個是將.png設置爲圖像而不是背景圖像,它看起來像是,無論類型是自定義還是舍入矩形。 – Gruntcakes 2012-07-19 15:57:41

相關問題