iOS中想给淘宝导航栏右边的右边按钮添加图片,图片从沙盒路径中获取

iOS开发 本地图片加载失败_百度知道
iOS开发 本地图片加载失败
断点发现path为null:question,用[UIImage imageNamed,但是用NSString *path = [[NSBundle mainBundle] pathForResource?:question.icon]没问题?神马情况.icon]本地图片
提问者采纳
文件夹名/而NSString *path = [[NSBundle mainBundle] pathForResource.icon]是直接从当前的项目中读取文件;/可以打印路径看看是什么情况NSlog(@“%@”,可以实现:question.icon].icon“].icon具体实现是这样的;/程序包的根目录(沙盒路径)
NSString *resourcePath = [[NSBundle mainBundle] resourcePath];是从沙盒路径中读取文件,只用question,question,如果图片是放在文件夹中的话.icon是不够的,还要加上这个文件夹的名字;UIImage *image = [UIImage imageWithContentsOfF&#47,应该加上当前的沙盒路径;完整的图片路径,如果你的沙盒路径中还有一个存放图片的文件夹的话.icon应该改为:@”question:沙盒路径&#47,imagePath):/&#47,因为用[UIImage imageN&#47:imagePath]这肯定的啊,还要在中间加上文件夹的路径 NSString *imagepath = [resourcePath stringByAppendingPathComponent
提问者评价
谢谢 其实早就发现了 因为处于学习阶段各种错误和找错
其他类似问题
为您推荐:
其他2条回答
p>上面写的都有问题:@&[UIImage&另外一种方法NSString&*path&nbsp,应该是这样UIImage&imageN*img&=&nbsp.icon&quot:@“question”&imageWithContentOfF[UIImage&UIImage&nbsp:@&];mainBundle]&=&nbsp:path];[[NSBundle&pathForR];=&ofTicon&*img&nbsp
question.icon已经是NSString类型的,是图片名,问题里面我省略了几个语句。你说的是pathForResource:这个方法不能用了吗? 必须用pathForResource:ofType:?
可以那样用。最好使用NSLog来看看path是否取到。重点是使用UIImage 的类方法imageWithContentOfFile 这个来得到UIImage对象。
问题就是断点发现path为nil,那么用imageWithContentOfFile:path就不可能返回一个UIImage,而使用imageNamed:是完全可以取得这张图片的。但是由于这个UIImageView里面要用到很多image,用imageNamed:耗用的内存达到一个恐怖的程度,所以只能使用imageWithContentOfFile:。
如果path为nil,说明你调用函数指定的图片名称或路径不正确导致的。如果是本地资源图片,上面的代码是可以成功拿到图片路径的。你自己检查一下,你的图片是不是被包含在一个实际的目录下,而非引用的group文件夹中,如果是那样的话,你在获取时还需要带上图片所在的目录。如NSString *path = [[NSBundle mainBundle] pathForResource:@“/image/question” ofType:@&icon&];
问题是imageNamed:能取到的图片[[NSBundle mainBundle] pathForResource:question.icon]取出失败question.icon怎么看像图片名了 question是模型 .icon是模型属性&
1、你没有吧图片加载到你的项目中2、你在加载图片的时候,图片的名称 出错3、 UIImage *image = [UIImage imageNamed:@&xxx.png&];
ios的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁iOS 8 之后的动态沙盒路径 - 简书
下载简书移动应用
写了5105字,被24人关注,获得了21个喜欢
iOS 8 之后的动态沙盒路径
在iOS8之前,我们获取到沙盒中的document、cache、tmp之后,下一次模拟器或真机无论重启多少次,这具体的路径是固定的,可是iOS8 之后,你要是在按原来的路径去找你想要的东西,我想它会把你坑的很惨.下面我就来说说自己的此次爬坑总结;1&//获取沙盒路径NSArray*path =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);NSString*documentPath = [pathlastObject];//Users/ZZ_running/Library/Developer/CoreSimulator/Devices/B9F-445A-A0DA-0D911BFA64C3/data/Containers/Data/Application/176DA32A-E007-42F5-8716-3BBD80FFAB4F/Library/D2&在iOS8之后,苹果可能考虑到安全因素,应用每一次重启,沙盒路径都动态的发生了变化。iOS8中第一次启动时的路径:///Users/ZZ_running//Library/Developer/CoreSimulator/Devices/B9F-445A-A0DA-0D911BFA64C3/data/Containers/Data/Application/DC-4C92-828C-BCB/Library/DocumentsiOS8中第二次启动时的路径:///Users/ZZ_running//Library/Developer/CoreSimulator/Devices/B9F-445A-A0DA-0D911BFA64C3/data/Containers/Data/Application/2B0-440E-AC26-B9B15E065110/Library/Documents从下划线的部分可以明显看出,两次运行得到的沙盒路径会发生改变,虽然iOS8之后,沙盒的路径发生了变化,但是并不代表你原来沙盒路径中的数据发生了变化;同时,也并不代表路径会越来越多.你一定有所顾虑了吧,下一次重启后路径变化了,那我们的数据/文件去哪儿呢?这个问题,你也完全没必要去担心,苹果是不会坑你的,他会帮你处理;1&苹果会把你上一个路径中的数据转移到你新的路径中。2&你上一个路径也会被苹果毫无保留的删除,只保留最新的路径。//获取沙盒路径后,你一定要注意,不要把沙盒路径写入你要保存的地方,比如数据库,如果你把documentPath路径写入数据库,这样你会很惨的,只要用每次运行程序后生成的NSArray*path =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);NSString*documentPath = [pathlastObject];发生了改变,你数据库里的路径就会消失,你就无法找到你想要的数据,你只需要将你的文件名:比如像a.jpg,你想拿到你存进去的数据,就需要让心生成的documentPath再拼上你自己的文件名比如 你的 a.jpg,这样不管document路径怎么变,你都可以找到你的文件;对于知道这个的同行来说,这些都是so easy, 但你要是不知道,还是个新手,我的爬坑经验可能会帮助你解决问题!祝:工作顺利,共同进步
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
被以下专题收入,发现更多相似内容:
学习从点滴开始 !
(PS: 拒绝部分投稿的文章仅仅是由于专题内已收集相关知识点的文章, 并非是投稿的文章技术含量不够好, 希望投稿...
· 3607人关注
开发者加入开发者讨论群!
· 1958人关注
iOS程序的学习资料
· 164人关注
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
选择支付方式:31142人阅读
IOS开发(71)
Object-C编程语言(40)
本文是使用纯代码实现一个导航栏的效果。单击按钮并且产生事件。基本思路是:
1.创建一个导航栏(UINavigationBar对象)
2.创建一个导航栏集合(UINavigationItem对象)
3.创建一个左边按钮、一个右边按钮(UIBarButtonItem对象),并实现对应的事件方法
4.将导航栏集合添加到导航栏中,设置动画关闭
5.把左右两个按钮添加到导航栏集合中去
6.在视图中显示当前创建的导航栏
具体的实现代码如下:
ViewController.h文件中的代码不用改变,如下所示:
#import &UIKit/UIKit.h&
@interface ViewController : UIViewController
ViewController.m文件中的代码:
#import &ViewController.h&
@interface ViewController ()
@implementation ViewController
- (void)viewDidLoad
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//创建一个导航栏
UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
//创建一个导航栏集合
UINavigationItem *navItem = [[UINavigationItem alloc] initWithTitle:nil];
//在这个集合Item中添加标题,按钮
//style:设置按钮的风格,一共有三种选择
//action:@selector:设置按钮的点击事件
//创建一个左边按钮
UIBarButtonItem *leftButton = [[UIBarButtonItem alloc] initWithTitle:@&左边& style:UIBarButtonItemStyleBordered target:self action:@selector(clickLeftButton)];
//创建一个右边按钮
UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@&右边& style:UIBarButtonItemStyleDone target:self action:@selector(clickRightButton)];
//设置导航栏的内容
[navItem setTitle:@&凌凌漆&];
//把导航栏集合添加到导航栏中,设置动画关闭
[navBar pushNavigationItem:navItem animated:NO];
//把左右两个按钮添加到导航栏集合中去
[navItem setLeftBarButtonItem:leftButton];
[navItem setRightBarButtonItem:rightButton];
//将标题栏中的内容全部添加到主视图当中
[self.view addSubview:navBar];
//最后将控件在内存中释放掉,以避免内存泄露
[navItem release];
[leftButton release];
[rightButton release];
-(void)showDialog:(NSString *)str
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@&这是一个对话框& message:str delegate:self cancelButtonTitle:@&确定& otherButtonTitles: nil];
[alert show];
[alert release];
-(void) clickLeftButton
[self showDialog:@&点击了导航栏左边按钮&];
-(void) clickRightButton
[self showDialog:@&点击了导航栏右边按钮&];
- (void)viewDidUnload
[super viewDidUnload];
// Release any retained subviews of the main view.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1268549次
积分:7163
积分:7163
排名:第1882名
原创:59篇
转载:22篇
评论:240条
(1)(2)(1)(1)(2)(4)(2)(4)(2)(4)(2)(1)(3)(13)(5)(2)(17)(15)iOS导航栏添加图片成功后会出现两个图片 - 开源中国社区
当前访客身份:游客 [
当前位置:
iOS导航栏添加图片成功后会出现两个图片,该怎么解决?
共有2个答案
<span class="a_vote_num" id="a_vote_num_
是的 你应该把代码贴出来&
<span class="a_vote_num" id="a_vote_num_
看看你的创建添加图片的方法是不是被调用了再次.你也没有代码 ,我们无法给你找到问题的所在
更多开发者职位上
有什么技术问题吗?
jack_ch...的其它问题
类似的话题}

我要回帖

更多关于 ios导航栏右边2个按钮 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信