首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从nsbundle访问图像

从nsbundle访问图像
EN

Stack Overflow用户
提问于 2013-05-22 15:14:30
回答 5查看 6.6K关注 0票数 1

我有一个框架,它试图从一个包中访问xib和图像。我可以很好地访问xib,但无法加载UIImageView中的图像。我甚至检查文件是否存在并且控制台输出是肯定的.

知道怎么加载图像吗?

在框架视图控制器文件中加载xib的代码

代码语言:javascript
复制
self = [super initWithNibName:@"ViewController_iPad" bundle:[NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"MyBundle" ofType:@"bundle"]]];

加载图像的代码

代码语言:javascript
复制
- (void) loadImage
{
    NSString *path = [[NSBundle mainBundle] pathForResource:@"MyBundle.bundle/test" ofType:@"png"];
    BOOL present = NO;
    present = [[NSFileManager defaultManager] fileExistsAtPath:path];
    if (present)
    {
        NSLog(@"MyBundle.bundle/test exists");
    }
    else
    {
        NSLog(@"MyBundle.bundle/test does not exists");

    }

    self.testImageView.image = [UIImage imageNamed:path];

    self.testImageView2.image = [UIImage imageWithContentsOfFile:path];
}

MyTestHarnessApp11671:c07 MyBundle.bundle/test存在

EN

回答 5

Stack Overflow用户

发布于 2013-05-22 16:01:47

当您使用imageNamed:时,您必须只传递一个简单的文件名,并且图像必须存在于应用程序资源包的根目录中。

您的映像不在资源包的根中,而是在子文件夹中。

由于您已经在path变量中获得了图像的完整路径,所以必须使用UIImage imageWithContentsOfFile:方法:

代码语言:javascript
复制
self.testImageView.image = [UIImage imageWithContentsOfFile:path];
票数 4
EN

Stack Overflow用户

发布于 2013-05-22 15:46:07

如果+[UIImage imageNamed:]没有正确解析路径,则始终可以使用:

代码语言:javascript
复制
self.testImageView.image = [UIImage imageWithContentsOfFile: path];
票数 2
EN

Stack Overflow用户

发布于 2013-05-22 15:23:34

您只需使用以下内容:

代码语言:javascript
复制
self.testImageView.image = [UIImage imageNamed:@"MyBundle.bundle/test.png"];

但是,如果您也将XIB放在包中,则接口将相对于包。

代码语言:javascript
复制
self.testImageView.image = [UIImage imageNamed:@"test.png"]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16695506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档