imageWithContentofFile 封装图片
来源:互联网 发布:制作音乐图片的软件 编辑:程序博客网 时间:2024/06/15 00:26
-(id) init {
self = [superinit];
if (self) {
CGRect rect_screen = [[UIScreenmainScreen]bounds];
CGSize size_screen = rect_screen.size;
CGFloat scale_screen = [UIScreenmainScreen].scale;
size_screen.width *= scale_screen;
size_screen.height *= scale_screen;
if ( CGSizeEqualToSize(size_screen, CGSizeMake(320,480))
|| CGSizeEqualToSize(size_screen,CGSizeMake(480,320))
|| CGSizeEqualToSize(size_screen,CGSizeMake(1024,768))
|| CGSizeEqualToSize(size_screen,CGSizeMake(768,1024))) {
isRetain =NO;
} else {
isRetain =YES;
}
imageDictionary = [[NSMutableDictionaryalloc] initWithCapacity:10];
[selfperformSelector:@selector(runPerTimes)withObject:nilafterDelay:KAutoReleaseTime]; // 60 秒后释放缓存
}
returnself;
}
-(void) dealloc{
if (imageDictionary) {
[imageDictionaryrelease];
imageDictionary =nil;
}
[superdealloc];
}
- (UIImage *)imageNamed:(NSString *)name{
NSMutableString* temp = [[NSMutableStringalloc] initWithString:name];
NSRange range = [temprangeOfString:@"@2x"];
if (range.length >0 && !isRetain) {//低分辨率下有@2x
[temp deleteCharactersInRange:range];
} elseif(range.length ==0 && isRetain){//高分辨率下无@2x
range = [temp rangeOfString:@"."];
if (range.length ==0) {
[temp appendString:@"@2x"];
} else {
[temp insertString:@"@2x"atIndex:range.location];
}
}
range = [temp rangeOfString:@"."];//没有后缀
if (range.length ==0) {
[temp appendString:@".png"];
}
UIImage* image = [imageDictionaryobjectForKey:temp];
if (image ==nil) {
NSString *path = [NSStringstringWithFormat:@"%@/%@",
[[NSBundlemainBundle] bundlePath],
temp];
image = [[UIImagealloc] initWithContentsOfFile:path];
if (image) {
[imageDictionarysetObject:image forKey:temp];
[image release];
}
}
[temp release];
return image;
}
-(void) runPerTimes{
[selfreleaseNotUsedImages];
[selfperformSelector:@selector(runPerTimes)withObject:nilafterDelay:KAutoReleaseTime];
}
- (void) releaseNotUsedImages{
NSArray* array = [imageDictionaryallKeys];
for (int i =0; i < [array count]; i++) {
NSString* name = [arrayobjectAtIndex:i];
UIImage* image = [imageDictionaryobjectForKey:name];
if (image.retainCount <=1) {
[imageDictionaryremoveObjectForKey:name];
}
}
}
- imageWithContentofFile 封装图片
- 加载图片的两个方法:imageName: imageWithContentOfFile:
- 【iOS开发-45】Tom猫案例:动画、imageNamed与imageWithContentOfFile对内存影响、图片文件夹放哪儿以及文档注释
- UIImage的ImageNamed 和 ImageWithContentOfFile的区别
- iOS中imageNamed 和 imageWithContentOfFile的区别
- iOS中imageNamed 和 imageWithContentOfFile的区别
- 封装图片滑动效果
- 封装图片滑动效果
- flex图片上传(封装)
- IOS 图片加载封装
- 封装jcrop_图片截取
- 图片查看功能封装
- 封装图片轮播器
- 各种IC封装形式图片
- 文本图片数据的封装
- Dom4j封装二进制图片数据
- php封装图片上传类
- 封装Android加载网络图片
- Java 反射 根据类名创建类实例
- android 滑动出现删除按钮 - swipelistview 入口方法以及简单布局说明
- shell 使用函数
- win7 svn 服务器和客户端安装配置
- [每日练习]Amazon面试题---给定数组,求出运算符使得结果等于某个数
- imageWithContentofFile 封装图片
- 是什么消磨了昨日
- 支付宝钱包在安卓5.0(棒棒糖)上无法安装的解决方案
- ABAP程序发送带附件的邮件
- iPhone6/6Plus下app状态栏内容放大问题处理
- 手动关闭某个程序或对话框
- Linux之Makefile(伪目标)
- 下载和编译Volley
- 深入理解Java多态性