Iphone Can';是否从Url将UIImage设置为UIImageView?
我无法理解为什么无法从下面的示例中设置uimageview from url:Iphone Can';是否从Url将UIImage设置为UIImageView?,iphone,ios,xcode,cocoa-touch,Iphone,Ios,Xcode,Cocoa Touch,我无法理解为什么无法从下面的示例中设置uimageview from url: NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://a4.mzstatic.com/us/r30/Music/08/e9/14/mzi.lmcnwrii.60x60-50.jpg"]]; UIImage *image = [UIImage imageWithData:data]; self.imgAlbum1 = [[
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://a4.mzstatic.com/us/r30/Music/08/e9/14/mzi.lmcnwrii.60x60-50.jpg"]];
UIImage *image = [UIImage imageWithData:data];
self.imgAlbum1 = [[UIImageView alloc] initWithImage:image];
它可以通过浏览图像正常工作,IBOutlet也可以,即使从ImageName设置uiimage也不起作用
我试着在故事板中重现控制,但什么都没有
任何提示都值得欣赏大概
imgAlbum1
是您现有图像视图的一个出口
最后一行尝试创建一个新的图像视图,而不在任何地方显示它,您可能需要:
self.imgAlbum1.image = image;
大概
imgAlbum1
是现有图像视图的一个出口
最后一行尝试创建一个新的图像视图,而不在任何地方显示它,您可能需要:
self.imgAlbum1.image = image;
编辑:如果您的
imgAlbum1
是一个IBOutlet
,则可能将其设置为弱属性。如果是这样,图像将永远不会显示。为了使用alloc,您的属性必须是强属性
由于您可能使用的是弱插座,请尝试使用另一张海报建议的self.imgAlbum1
。不过,这会起作用的原因是,您只是更新了图像,而不是实际的imageView
对象(弱属性,当您重新分配时,实际上会完全破坏对象)
这就是我所做的,我测试过,效果很好:
NSString *encodedString = [[NSString stringWithFormat:@"%@", @"us/r30/Music/08/e9/14/mzi.lmcnwrii.60x60-50.jpg"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *imageURL = [NSURL URLWithString:[NSString stringWithFormat:@"http://a4.mzstatic.com/%@", encodedString]];
NSData *data = [NSData dataWithContentsOfURL:imageURL];
UIImage *image = [[UIImage alloc] initWithData:data];
UIImageView *imgAlbum1 = [[UIImageView alloc] initWithImage:image];
[self.view addSubview:imgAlbum1];
因此,我的问题是:
- 您是否为imgAlbum1使用弱属性(即:
?如果是这样,不要将其设置为strong,只需使用@property(非原子,弱)IBOutlet*imgAlbum1)
self.imgAlbum1.image=image代码>
- 您是否已确保与正在使用的设备建立internet连接
是否是imgAlbum1
到IBOutlet
?如果是,它是隐藏的(或被图层隐藏的)UIImageView
- 您在右视图控制器上吗
否则,代码看起来很好。编辑:如果您的
imgAlbum1
是一个IBOutlet
,则可能将其设置为弱属性。如果是这样,图像将永远不会显示。为了使用alloc,您的属性必须是强属性
由于您可能使用的是弱插座,请尝试使用另一张海报建议的self.imgAlbum1
。不过,这会起作用的原因是,您只是更新了图像,而不是实际的imageView
对象(弱属性,当您重新分配时,实际上会完全破坏对象)
这就是我所做的,我测试过,效果很好:
NSString *encodedString = [[NSString stringWithFormat:@"%@", @"us/r30/Music/08/e9/14/mzi.lmcnwrii.60x60-50.jpg"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *imageURL = [NSURL URLWithString:[NSString stringWithFormat:@"http://a4.mzstatic.com/%@", encodedString]];
NSData *data = [NSData dataWithContentsOfURL:imageURL];
UIImage *image = [[UIImage alloc] initWithData:data];
UIImageView *imgAlbum1 = [[UIImageView alloc] initWithImage:image];
[self.view addSubview:imgAlbum1];
因此,我的问题是:
- 您是否为imgAlbum1使用弱属性(即:
?如果是这样,不要将其设置为strong,只需使用@property(非原子,弱)IBOutlet*imgAlbum1)
self.imgAlbum1.image=image代码>
- 您是否已确保与正在使用的设备建立internet连接
是否是imgAlbum1
到IBOutlet
?如果是,它是隐藏的(或被图层隐藏的)UIImageView
- 您在右视图控制器上吗
否则,代码似乎很好。在第一次调用后,您是否尝试打印出
数据
?是的,nsdata打印良好在第一次调用后,您是否尝试打印出数据
?是的,nsdata打印良好不确定发生了什么,我甚至无法像uibutton标题那样实际设置其他控件。连续17小时编程不确定我是否错过了一些明显的东西。。。我将尝试创建一个新的viewcontroller,然后再试一次。顺便说一句,我以前尝试过,但没有成功。我创建了一个全新的项目,现在它运行良好,谢谢。我不知道发生了什么,我甚至不能像uibutton标题那样实际地设置其他控件。连续17小时编程不确定我是否错过了一些明显的东西。。。我将尝试创建一个新的viewcontroller,然后再试一次。顺便说一句,我以前尝试过,但没有成功。我创建了一个全新的项目,现在工作正常,谢谢