码迷,mamicode.com
首页 > 移动开发 > 详细

ios25---图片拉伸

时间:2017-09-03 18:39:58      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:类的方法   top   ati   int   property   view   car   技术   color   

技术分享

控制器:

//
//  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---图片拉伸

标签:类的方法   top   ati   int   property   view   car   技术   color   

原文地址:http://www.cnblogs.com/yaowen/p/7470323.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!