1. 程式人生 > >ios25---圖片拉伸

ios25---圖片拉伸

哪些 小碼哥 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---圖片拉伸