iOS自定义图片拉伸和iOS6,7图片适配
2014-09-20 12:58 苑哲雨 阅读(191) 评论(0) 收藏 举报新建一个UIImage的类的扩展,命名为:UIImage+YLY
类的扩展在不改变本身系统类的基础上进行自定义的扩展,使用方便,而且容易区分与系统的类的方法
1.在.h文件中添加如下代码:
#import <UIKit/UIKit.h> @interface UIImage (YLY) /** * 加载项目中的所有图片 * * @param name 文件名 * * @return 一个新的图片对象 */ +(UIImage *)imageWithNamed:(NSString *)name; /** * 返回能够自由拉伸的不变形的图片 * * @param name 文件名 * * @return 图片 */ + (UIImage *)resizedImage:(NSString *)name; @end
2.在.m中添加如下代码
#import "UIImage+YLY.h" @implementation UIImage (YLY) #pragma mark image类的扩展 +(UIImage *)imageWithNamed:(NSString *)name { if (iOS7) { NSString *newName = [name stringByAppendingString:@"_os7"]; UIImage *image = [self imageNamed:newName]; //判断加载图片名称 if (image == nil) { image = [self imageNamed:name]; } return image; }else { return [self imageNamed:name]; } } //这个方法是防止图片拉伸 +(UIImage *)resizedImage:(NSString *)name { UIImage *image = [UIImage imageWithNamed:name]; //防止图片拉伸 return [image stretchableImageWithLeftCapWidth:image.size.width*0.5 topCapHeight:image.size.height*0.5]; } @end
注释:代码中的iOS7是宏定义,做了iOS6和iOS7的适配
使用的时候就可以直接用扩展的类方法了
UIImage *selected = [UIImage imageWithNamed:selectedImage];
自定义搜索栏调用防止图片拉伸的方法
YLYSearchBar *search = [[YLYSearchBar alloc] init]; search.bounds = CGRectMake(0, 0, 300, 30); self.navigationItem.titleView = search;
浙公网安备 33010602011771号