圖片的簡單展開操作,圖片簡單展開操作
初始圖片尺寸大小為 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
CGFloat left = 12; // 左端寬度
CGFloat right = 12; // 右端寬度
UIEdgeInsets insets = 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)capInsets resizingMode:(UIImageResizingMode)resizingMode
對比iOS5.0中的方法,只多了一個UIImageResizingMode參數,用來指定展開的模式:
UIImageResizingModeStretch:展開模式,通過展開UIEdgeInsets指定的矩形地區來填充圖片
UIImageResizingModeTile:平鋪模式,通過重複顯示UIEdgeInsets指定的矩形地區來填充圖片
CGFloat left = 12; // 左端寬度
CGFloat right = 12; // 右端寬度
UIEdgeInsets insets = UIEdgeInsetsMake(0, left, 0, right);
// 伸縮後重新賦值
UIImage *new = [image resizableImageWithCapInsets:insets resizingMode:UIImageResizingModeStretch];
[button1 setBackgroundImage:new forState:UIControlStateNormal];
[self.view addSubview:button1];
下面是展開過的圖片