初始圖片尺寸大小為 25 * 28 pixels
現在我們在根試圖上創建兩個button
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(50, 100, 25, 28);
[button setBackgroundImage:[UIImage imageNamed:@"btn.png"] forState:UIControlStateNormal];
[self.view addSubview:button];
UIButton *button1 = [UIButton buttonWithType:UIButtonTypeCustom];
button1.frame = CGRectMake(50, 200, 200, 28);
UIImage *image = [UIImage imageNamed:@"btn.png"];
[button1 setBackgroundImage:image forState:UIControlStateNormal];
[self.view addSubview:button1];
沒做拉伸處理前圖片效果
在iOS 5.0中,UIImage有一個新方法可以處理圖片的拉伸問題
-(UIImage*)resizableImageWithCapInsets:(UIEdgeInsets)capInsets
CGFloatleft= 12;//左端寬度
CGFloatright= 12;//右端寬度
UIEdgeInsetsinsets=UIEdgeInsetsMake(0,left,0,right);
//伸縮後重新賦值
UIImage *new = [image resizableImageWithCapInsets:insets];
[button1 setBackgroundImage:new forState:UIControlStateNormal];
[self.view addSubview:button1];
在iOS6.0中,UIImage又提供了一個方法處理圖片拉伸
-(UIImage*)resizableImageWithCapInsets:(UIEdgeInsets)capInsetsresizingMode:(UIImageResizingMode)resizingMode
對比iOS5.0中的方法,只多了一個UIImageResizingMode參數,用來指定拉伸的模式:
UIImageResizingModeStretch:拉伸模式,通過拉伸UIEdgeInsets指定的矩形區域來填充圖片
UIImageResizingModeTile:平鋪模式,通過重復顯示UIEdgeInsets指定的矩形區域來填充圖片
CGFloatleft= 12;//左端寬度
CGFloatright= 12;//右端寬度
UIEdgeInsetsinsets=UIEdgeInsetsMake(0,left,0,right);
//伸縮後重新賦值
UIImage *new = [image resizableImageWithCapInsets:insets resizingMode:UIImageResizingModeStretch];
[button1 setBackgroundImage:new forState:UIControlStateNormal];
[self.view addSubview:button1];
下面是拉伸過的圖片