首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIImage imageNamed

UIImage imageNamed
EN

Stack Overflow用户
提问于 2011-05-25 06:27:08
回答 2查看 4.1K关注 0票数 1

我正在尝试在OpenFlow API中使用url作为UIImage

代码语言:javascript
复制
NSString *imageUrl = [[[newsEntries objectAtIndex:0] objectForKey: @"still"] retain];
NSURL *url2 = [NSURL URLWithString:imageUrl];
NSData *photoData = [NSData dataWithContentsOfURL:url2];
UIImage *imageUI = [UIImage imageWithData:photoData]
UIImageView *myImage = [UIImageView initWithFrame:imageUI];
[(AFOpenFlowView *)self.view setImage:[UIImage imageNamed:myImage]];
[imageUr release];

[(AFOpenFlowView *)self.view setNumberOfImages:3]; 

我试过了,但没有成功。我让这个接口工作的唯一方法是使用imageNamed类型。initwithData没有成功。

那么,如何才能将此NSString更改为最终成为imageNamed方法呢?

EN

回答 2

Stack Overflow用户

发布于 2011-05-25 06:30:52

UIImageView不同于UIImage。

更改此行:[(AFOpenFlowView *)self.view setImage:[UIImage imageNamed:myImage]];

关于这个:[(AFOpenFlowView *)self.view setImage:[UIImage imageNamed:imageUI]];

它应该是有效的。

票数 2
EN

Stack Overflow用户

发布于 2011-05-25 07:42:24

这里有几个重要的错误。看起来您可能需要阅读有关C/Objective-C和类型的知识。

听起来你是在断言,特别是这句话

代码语言:javascript
复制
UIImage *imageUI = [UIImage imageWithData:photoData]

不起作用。到那时为止的代码实际上看起来还不错(尽管没有必要保留然后释放imageUrl变量。

一旦创建了UIImage,就应该能够将其直接传递给AFOpenFlowView

代码语言:javascript
复制
[(AFOpenFlowView*)self.view setImage:imageUI forIndex:0];

这条线

代码语言:javascript
复制
UIImageView *myImage = [UIImageView initWithFrame:imageUI];

有两个错误(无论如何都是不必要的)。首先,-initWithFrame使用CGRect作为参数,而不是UIImageUIImageView确实有一个初始化方法-initWithImage,这可能就是您想要的。但无论哪种方式,以"init“开头的方法都是实例方法,而不是类方法,所以您必须在UIImageView的实际实例上调用它们,如下所示:

代码语言:javascript
复制
UIImageView *myImage = [[UIImageView alloc] initWithImage:imageUI];

请注意,这将泄漏内存,除非您自动释放或释放它。

下面这一行,您正确地尝试为AFOpenFlowView提供一个UIImage,但是您尝试通过将一个UIImageView传递给+imageNamed方法来创建该UIImage+imageNamed接受一个包含图像名称的NSString,传递给它的任何其他参数都不起作用。

您必须始终了解方法期望接收的是哪种类型的对象,并确保找到某种方法来提供这种类型的对象。

您在这里寻找的内容可能是这样的:

代码语言:javascript
复制
NSString *imageUrl = [[newsEntries objectAtIndex:0] objectForKey: @"still"];
NSString *imageName = [imageUrl lastPathComponent];
[(AFOpenFlowView *)self.view setImage:[UIImage imageNamed:imageName]];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6117664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档