37-给UIImage,NSString添加扩展方法(根据内容拉伸图片,根据内容计算文本大小)


给UIImage,NSString添加扩展方法


============== 步骤 ==============

1.创建一个文件夹,用来存放扩展类

屏幕快照 2015-01-08 下午7.19.10.png

2.创建一个UIImage的分类(创建NSString的扩展就选择NSString)

屏幕快照 2015-01-08 下午7.20.37.png

3.在已经创建完成的UIImage分类中添加类方法

屏幕快照 2015-01-08 下午7.21.19.png

4.使用时候要导入该分类,然后直接用UIImage的类方法实现

导入头文件
屏幕快照 2015-01-08 下午7.25.28.png

使用
屏幕快照 2015-01-08 下午7.26.56.png



 ============== 源码  ==============

给UIImage添加扩展方法,根据内容拉伸图片

//  UIImage+Extensiton.h


#import  <UIKit/UIKit.h>

@interface  UIImage (Extensiton)

+(
UIImage  *) resizeImage:( NSString  *)imageName;
@end



//  UIImage+Extensiton.m


#import  "UIImage+Extensiton.h"

@implementation  UIImage (Extensiton)

/**
 *  根据内容拉伸图片
 *
 *  
@param  imageName 图片名字
 *
 *  
@return  计算完成后的图片
 */



+(
UIImage  *) resizeImage:( NSString  *)imageName
{
    
UIImage   *img=[ UIImage   imageNamed :imageName];
    
return  [img  stretchableImageWithLeftCapWidth :img. size . width / 2   topCapHeight :img. size . height / 2 ];
}
@end

给NSString添加扩展方法,根据内容计算文本大小


//  NSString+Extensiton.h

#import  <Foundation/Foundation.h>

//要导入UIKit头文件 才能使用 CGSize等结构体
#import <UIKit/UIKit.h>

@interface  NSString (Extensiton)

+(
CGSize )textOfText:( NSString  *)text maxSize:( CGSize )maxSize fontSize:( CGFloat )fontSize;
@end


//  NSString+Extensiton.m


#import  "NSString+Extensiton.h"

@implementation  NSString (Extensiton)

/**
 *  计算文本Size
 *
 *  
@param  text     要计算的文本
 *  
@param  maxSize  需要限制的size
 *  
@param  fontSize 计算文本的字体大小
 *
 *  
@return  文本Size
 */


+(
CGSize )textOfText:( NSString  *)text maxSize:( CGSize )maxSize fontSize:( CGFloat )fontSize
{
    
CGSize  size=[text  boundingRectWithSize :maxSize  options : NSStringDrawingUsesLineFragmentOrigin   attributes : @{ NSFontAttributeName :[ UIFont   systemFontOfSize :fontSize] }   context : nil ]. size ;
    
return  size;
}

@end





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值