I'm playing around with imageView and there is the method [ imageWithContentsOfFile];
But actually it doesn't show anything after run it. Below the code , there is the [ imageNamed:] method and it works as usual.
Any ideas?
Thanks,
#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
I guess the problem is pathForResource method doesn't work properly somehow...
If you're targeting iOS 7+, and using Asset Catalogs (which it looks like you're using, since you specified images.xcassets in one of your comments), Xcode 5 now puts the assets into a new file format. 1 file for all of the assets. This means you can not get access to the file directly using imageWithContentsOfFile:. And that's also why pathForResource:ofType: doesn't return a path.
If you need to access the file directly, you can include it as an normal image outside of an asset catalog.
You should also ask yourself if you need to access the file directly. In most cases you can use imageNamed:. Which also gives you automatic caching for the image and can improve performance.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With