看哪:iOS - 可以拉伸UIImageView而不是UIButton?
//UIImageView* stretchTest = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]];
//[self addSubview:stretchTest];
UIButton *stretchTest = [UIButton buttonWithType:UIButtonTypeCustom];
[stretchTest setFrame:CGRectMake(0, 0, 400, 100)];
[stretchTest setBackgroundImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal];
[self addSubview:stretchTest];
stretchTest.contentStretch = CGRectMake(0.5, 0.5, 0, 0);
stretchTest.contentMode = UIViewContentModeScaleToFill;
CGRect frame = stretchTest.frame;
frame.size.height = 300;
stretchTest.frame = frame;
使用的UIImageView(以上註釋)中,圖像適當地拉伸 - 圓角保持正確的半徑,因爲只有圖像的中心像素被拉伸。
使用UIButton,圖像被拉伸不正確。角落半徑不被維護,並且變得醜陋。
UIImageView和UIButton都是UIView的子類。爲什麼按鈕調整大小不同於imageView?
ok ...確實有效。我正在嘗試使用上述內容,因爲根據Apple的說法「在爲視圖指定背景時,使用contentStretch屬性優於創建可伸縮UIImage對象。」他們沒有提及任何有關UIView的哪些子類可以或不可以使用該屬性的內容。 – sol 2011-02-23 01:48:28
在按鈕上可用的contentStretch足以滿足我寫過的功能(現在兩次!)一個UIButton子類,它將UIImageView插入到自身中,並將其背景圖像(和contentStretch)複製到它們中。這並不難。唯一的小問題是重寫'LayoutSubviews'來將imageViews移動到後面,以便它們出現在按鈕的非背景圖像和標題標籤後面。 – rgeorge 2011-02-24 06:20:21