无法在 UIImageView 中显示 UIImage
Posted
技术标签:
【中文标题】无法在 UIImageView 中显示 UIImage【英文标题】:Can't display UIImage in UIImageView 【发布时间】:2010-07-05 21:53:07 【问题描述】:我想在 UIImageView 中显示 UIImage,但它不起作用,我不知道为什么。 你能帮帮我吗?
我正在使用以下编码:
-(void) showCorrectedImage
MyAppDelegate *delegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
CorrectedImageController *imageController = [[CorrectedImageController alloc] initWithNibName:@"CorrectedImageView" bundle:nil];
UIImageView *imgView = [[UIImageView alloc] initWithImage:originalImage];
imageController.imageView = imgView;
[imgView release];
[delegate.navController pushViewController:imageController animated:YES];
有一个名为“CorrectedImageView.xib”的 xib 文件,在 xib 中我放置了一个 UIImageView。我已将 UIImageView 插座与图像视图连接起来,并将视图插座与视图连接起来。 原始图像定义为 UIImage 并使用文件进行初始化。
兄弟, 马丁
【问题讨论】:
【参考方案1】:在这些行中
UIImageView *imgView = [[UIImageView alloc] initWithImage:originalImage];
imageController.imageView = imgView;
[imgView release];
当您在 XIB 文件中已有一个时,您正在创建一个新的 UIImageView 实例。如果您在 IB 中的人脉很好,那么您应该只需要这样做:
imageController.imageView.image = originalImage;
另外,请不要忘记像这样推送后释放 imageController:
[imageController release];
附:至于为什么你的代码不起作用,新创建的 UIImageView 实例,虽然它替换了视图控制器中的前一个,但它没有添加为视图控制器视图的子视图。所以在你的代码执行之后,你有:
-
作为主视图的子视图保留的 UIImageView 实例。
另一个 UIImageView 实例使用您的图像初始化并保留在视图控制器中,但不是主视图的子视图,因此不会显示。
【讨论】:
抱歉,我没有让它运行。也许我的笔尖文件是错误的。它看起来如下: -File's Owner (CorrectedImageController) -First Responder (UIResponder) -View (UIView) --ImageView (UIImageView9 我已将 File's Owner view 属性连接到 View Element 并将 File's Owner imageView 属性连接到 ImageView Element . 我错过了什么吗?BR,马丁【参考方案2】:抱歉,我没有让它运行。也许我的笔尖文件是错误的。 它看起来如下:
-File's Owner (CorrectedImageController)
-First Responder (UIResponder)
-View (UIView)
--ImageView (UIImageView9
我已将文件的所有者视图属性连接到视图元素 并将文件的所有者 imageView 属性添加到 ImageView 元素。
我错过了什么吗?
BR, 马丁
【讨论】:
以上是关于无法在 UIImageView 中显示 UIImage的主要内容,如果未能解决你的问题,请参考以下文章
将 UIImageView 和覆盖的 UIView 保存为图像(xcode/iOS)