Phi*_*hil 7 iphone xcode uiimage ios
我正在尝试加载一个已保存的图像但是当我检查UIImage时它会返回为零.这是代码:
UIImage *img = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"/var/mobile/Applications/B74FDA2B-5B8C-40AC-863C-4030AA85534B/Documents/70.jpg" ofType:nil]];
Run Code Online (Sandbox Code Playgroud)
然后我检查img,看看它是否为零.列出目录显示文件,我做错了什么?
Wri*_*sCS 18
您需要指向应用程序中的Documents目录,然后像这样:
- (NSString *)applicationDocumentsDirectory
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
return basePath;
}
Run Code Online (Sandbox Code Playgroud)
UIImage *img = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/70.jpg",[self applicationDocumentsDirectory]]];
Run Code Online (Sandbox Code Playgroud)
首先,你使用的是pathForResource错误,正确的方法是:
[[NSBundle mainBundle] pathForResource:@"70" ofType:@"jpg"]
Run Code Online (Sandbox Code Playgroud)
捆绑的整个想法是抽象资源路径,例如它始终有效,无论您的应用程序驻留在系统中的哪个位置.但是,如果您只想加载该图像,我建议您使用imageNamed:因为它会自动为您处理iPhone上的视网膜分辨率(高分辨率)显示检测,并"自动"加载相应的资源:
UIImage *img = [UIImage imageNamed:@"70.jpg"];
Run Code Online (Sandbox Code Playgroud)
要轻松支持常规和视网膜分辨率,您需要在应用程序包中使用两个资源,70.jpg和70@2x.jpg,并且@ 2x资源同时加倍和高度.
尝试加载UIImage:
[UIImage imageNamed:@"something.png"]
Run Code Online (Sandbox Code Playgroud)
它在应用程序的主包中查找具有指定名称的图像.也很好:它会自动选择Retina(xyz@2x.png)或非Retina(xyz.png)版本.
| 归档时间: |
|
| 查看次数: |
23319 次 |
| 最近记录: |