ios 加载.bundle文件里的图片

+ (UIImage *)imageNamed:(NSString *)name ofBundle:(NSString *)bundleName {

static NSMutableDictionary *loadedObjectDict = nil;

if (!loadedObjectDict) {

loadedObjectDict = [[NSMutableDictionary alloc] init];

}

NSString *keyString = [NSString stringWithFormat:@"%@%@", bundleName, name];

RCDLiveWeakRef *ref = loadedObjectDict[keyString];

if (ref.weakRef) {

return ref.weakRef;

}

UIImage *image = nil;

NSString *image_name = [NSString stringWithFormat:@"%@.png", name];

NSString *resourcePath = [[NSBundle mainBundle] resourcePath];

NSString *bundlePath = [resourcePath stringByAppendingPathComponent:bundleName];

NSString *image_path = [bundlePath stringByAppendingPathComponent:image_name];

// NSString* path = [[[[NSBundle mainBundle] resourcePath]

// stringByAppendingPathComponent:bundleName]stringByAppendingPathComponent:[NSString

// stringWithFormat:@"%@.png",name]];

// image = [UIImage imageWithContentsOfFile:image_path];

image = [[UIImage alloc] initWithContentsOfFile:image_path];

[loadedObjectDict setObject:[RCDLiveWeakRef refWithObject:image] forKey:keyString];

return image;

}

时间: 2024-10-19 08:45:41

ios 加载.bundle文件里的图片的相关文章

IOS加载PDF文件

今天的任务是:在iOS上加载显示pdf文件. 方法一:利用webview [cpp] view plaincopy -(void)loadDocument:(NSString *)documentName inView:(UIWebView *)webView { NSString *path = [[NSBundle mainBundle] pathForResource:documentName ofType:nil]; NSURL *url = [NSURL fileURLWithPath

加载json文件没显示图片

IOS 9新特性要求App内访问的网络必须使用HTTPS协议. 但是现在公司的项目使用的是HTTP协议,使用私有加密方式保证数据安全.现在也不能马上改成HTTPS协议传输. 以下解决办法: 在info.plist文件中设置 App Transport Security Settings Allow Arbitrary Loads                        boolean         YES

iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?

Apple官方的文档为生成一个UIImage对象提供了两种方法: 1. imageNamed,其参数为图片的名字: 2. imageWithContentsOfFile,其参数也是图片文件的路径. 那么两种有什么区别吗? 肯定是有的.根据Apple的官方文档: imageNamed: 这个方法用一个指定的名字在系统缓存中查找并返回一个图片对象如果它存在的话.如果缓存中没有找到相应的图片,这个方法从指定的文档中加载然后缓存并返回这个对象.因此imageNamed的优点是当加载时会缓存图片.所以当图

webpack模块加载css文件及图片地址

webpack支持css文件加载并打包,只需安装相应加载器并在配置文件中配置 . 加载的css文件内容会与该模块里的js内容混合封装,这样做的好处是一个js文件包含了所有的css与js内容,有效减少了http请求次数,显著提高了页面响应性能的用户体验. 加载css文件时,如果css里含有图片的引用地址,编译时webpack会将图片资源处理并输出到设置的publicPath参数位置,该参数可以是以页面为基准的相对地址,也可以是以根目录为基准的绝对地址.url-laoder会在这个地址下兴建一个im

iOS 8 & Xcode 6:UINib加载xib文件问题

使用UINib类静态方法nibWithNibName:bundle:加载xib(nib)文件,第一个参数无须加文件后缀.若加后缀,则程序报错:第二个参数为空时,程序从mainBundle指向的路径中搜索文件. 正确的写法: UINib *storyCellNib = [UINib nibWithNibName:@"StoryCell" bundle:nil]; [self.tableView registerNib:storyCellNib forCellReuseIdentifier

ios – 使用UINib加载xib文件实现UITableViewCell

xib文件的实质是xml,描述界面对象,每个对象都有一个很重要的属性,identity inspector面板中class属性,加载xib文件的时候实际上是实例化界面对象相对应的这些class. xib文件的加载过程: 1.将xib文件从磁盘载入内存,有两种技术可以加载xib文件:NSBundle和UINib. 2.执行unarchive和initialize操作,该过程主要由NSCoding Protocol中的initWithCoder:(NSCoder *)decoder完成. 3.建立c

ios UI加载xib文件到控制器的两种方式(MS)

X-code6.3 创建xib文件 加载xib文件到控制器的两种方式(MS) // 1.第一种方式 //    NSArray * array = [[NSBundle mainBundle]loadNibNamed:@"cell" owner:nil options:nil]; //    MyTableViewCell * cell = [array firstObject]; 其中cell为新建的xib文件名 // 2.第二种方式 UINib * nib = [UINib nib

ios – 使用UINib加载xib文件实现UITableViewCell

  xib文件的实质是xml,描述界面对象,每个对象都有一个很重要的属性,identity inspector面板中class属性,加载xib文件的时候实际上是实例化界面对象相对应的这些class. xib文件的加载过程:   1.将xib文件从磁盘载入内存,有两种技术可以加载xib文件:NSBundle和UINib.   2.执行unarchive和initialize操作,该过程主要由NSCoding Protocol中的initWithCoder:(NSCoder *)decoder完成.

Spring boot 国际化自动加载资源文件问题

Spring boot 国际化自动加载资源文件问题 最近在做基于Spring boot配置的项目.中间遇到一个国际化资源加载的问题,正常来说只要在application.properties文件中定义正确的资源文件路径,Spring boot就启动时就会自动加载资源. spring.messages.basename=i18n/message 但是我的项目修改后获取消息时系统报错,找不到对应语言的资源配置.于是试图找到原因.Google好久都没找到,简直好像就我一个人遇到这鬼问题一样??.只好自