我正在玩imageView,并且有方法[imageWithContentsOfFile]; 但实际上它在运行后没有显示任何内容。在代码下面,有[imageNamed:]方法,它像往常一样工作。 有任何想法吗? 谢谢,
#import "ViewController2.h"
@interface ViewController2 ()
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@end
@implementation ViewController2
- (BOOL)prefersStatusBarHidden
{
return YES;
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
// just fugly don't do it
// self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"stanford"]];
UIBarButtonItem *shareItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:nil];
UIBarButtonItem *cameraItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:nil];
NSArray *actionButtonItems = @[shareItem, cameraItem];
self.navigationItem.rightBarButtonItems = actionButtonItems;
NSString *imgPath =[[NSBundle mainBundle] pathForResource:@"google" ofType:@"png"];
self.imageView.image = [UIImage imageWithContentsOfFile:imgPath];
// self.imageView.image = [UIImage imageNamed:@"google"];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
我猜问题是pathForResource方法不能正常工作......
答案 0 :(得分:4)
如果你的目标是iOS 7+,并使用资产目录(它看起来像你正在使用,因为你在其中一条评论中指定了images.xcassets),Xcode 5现在将资产置于一种新的文件格式。所有资产都有1个文件。这意味着您无法使用imageWithContentsOfFile:
直接访问该文件。这也是pathForResource:ofType:
没有返回路径的原因。
如果您需要直接访问该文件,可以将其作为资产目录之外的普通图像包含。
您还应该问自己是否需要直接访问该文件。在大多数情况下,您可以使用imageNamed:
。这也为您提供了图像的自动缓存,并可以提高性能。
答案 1 :(得分:0)
设置breakPoint以检查“imgPath”结果。如果为空,也许您应该将@ 2x添加到名称:
NSString * imgPath = [[NSBundle mainBundle] pathForResource:@“google @ 2x”ofType:@“png”];
答案 2 :(得分:0)
- >右键单击项目导航器中的图像
- >在Finder中显示
- >右键单击finder中的图像
- >获取信息
- >寻找文件名和扩展名。
- >在项目中使用相同的名称和扩展名。它会起作用。