ios25---圖片拉伸
阿新 • • 發佈:2017-09-03
哪些 小碼哥 style n) named @property name insets 保護
控制器:
// // ViewController.m // 12-圖片的拉伸問題 // // Created by xiaomage on 15/12/30. // Copyright ? 2015年 小碼哥. All rights reserved. // #import "ViewController.h" #import "UIImage+XMGExtention.h" @interface ViewController () @property (weak, nonatomic) IBOutlet UIButton *button; @end @implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; // 1.1 創建UIImage對象 UIImage *image = [UIImage resizableImageWithLocalImageName:@"car"];//擴展了系統類的方法 //UIImage *image = [UIImage imageNamed:@"car"]; // 1.2 拿到image的尺寸 /* CGFloat imageWidth = image.size.width; CGFloat imageHeight = image.size.height;*/ // 1.3 返回一張受保護而且拉伸的圖片 --->CapInsets:哪些地方要保護:上面保護圖片高度一半,左邊保護圖片寬度一半,右邊保護寬度一半減一,下面保護高度一半減一。只有中間1*1的區域拉伸。 // 方式一 /* UIImage *resizableImage = [image resizableImageWithCapInsets:UIEdgeInsetsMake(imageHeight * 0.5, imageWidth * 0.5, imageHeight * 0.5 -1, imageWidth * 0.5 - 1)]; UIImageResizingModeTile, 平鋪 UIImageResizingModeStretch, 拉伸(伸縮) UIImage *resizableImage = [image resizableImageWithCapInsets:UIEdgeInsetsMake(imageHeight * 0.5, imageWidth * 0.5, imageHeight * 0.5 -1, imageWidth * 0.5 - 1) resizingMode:UIImageResizingModeTile];*/ // 方式二 /* // 右邊需要保護的區域 = 圖片的width - leftCapWidth - 1 // bottom cap = height - topCapHeight - 1 UIImage *resizableImage = [image stretchableImageWithLeftCapWidth:imageWidth * 0.5 topCapHeight:imageHeight * 0.5]; */ //2.把圖片設置到按鈕上 [self.button setBackgroundImage:image forState:UIControlStateNormal]; } @end
UIImage的擴展,分類:
// // UIImage+XMGExtention.h // 12-圖片的拉伸問題 // #import <UIKit/UIKit.h> @interface UIImage (XMGExtention) //分類 /** * 返回一張受保護的圖片(被拉伸的) */ + (instancetype)resizableImageWithLocalImageName: (NSString *)localImageName; @end
// // UIImage+XMGExtention.m // #import "UIImage+XMGExtention.h" @implementation UIImage (XMGExtention) + (instancetype)resizableImageWithLocalImageName:(NSString *)localImageName{ // 創建圖片對象 UIImage *image = [UIImage imageNamed:localImageName]; // 獲取圖片的尺寸 CGFloat imageWidth = image.size.width; CGFloat imageHeiht = image.size.height; // 返回一張拉伸且受保護的圖片 return [image stretchableImageWithLeftCapWidth:imageWidth * 0.5 topCapHeight:imageHeiht * 0.5 ]; } @end
ios25---圖片拉伸