如何在 UIImageView 中显示 UIImage?
Posted
技术标签:
【中文标题】如何在 UIImageView 中显示 UIImage?【英文标题】:How can I display a UIImage in a UIImageView? 【发布时间】:2013-09-10 21:36:34 【问题描述】:我正在玩 Xcode 5 和故事板。我正在使用相机拍摄UIImage
,但我无法弄清楚如何在拍摄后在手机上显示图像。我已经指定了一个IBOutlet UIImageView
并将它的值设置为我从相机捕获的图像,但这似乎根本没有任何作用。
这是我的界面:
@interface HCViewController ()
@property (nonatomic, retain) IBOutlet UIImageView *image;
@end
这是我的didFinishPickingWithMediaInfo
方法:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
// Get the picture from the camera
UIImage *imageFromCamera = [info objectForKey:UIImagePickerControllerEditedImage];
// Set the IBOutlet UIImageView to the picture from the camera
// This does nothing as far as I can tell
self.image = [[UIImageView alloc] initWithImage:imageFromCamera];
// Let's take a closer look at this
NSLog(@"%@", self.image);
// Close the camera view controller
[self dismissViewControllerAnimated:YES completion:nil];
这是我在 self.image
的记录器中看到的:
2013-09-10 17:17:45.169 YourMom[6136:60b] <UIImageView: 0x1556fdc0; frame = (0 0; 0 0); userInteractionEnabled = NO; layer = <CALayer: 0x155d5b10>>
我的故事板有一个视图控制器,它有两个不同的场景,可以来回滑动。这两个场景都有一个“视图”,其中一个“图像视图”作为子项。每个图像视图都有“参考插座”,似乎连接到我在界面中定义的image
变量。但是,简单地设置image
的值并不会改变手机显示。
在阅读了这个 SO 问题后:How can I change the image displayed in an UIImageView programmatically? 我尝试了[self.image setImage:image]
,但这似乎也没有做任何事情。如何告诉 Xcode 我希望 image
出现在视图中?
【问题讨论】:
【参考方案1】:你的错误在于:
self.image = [[UIImageView alloc] initWithImage:imageFromCamera];
因为您使用的是 Storyboard,所以您的 UIImageView
将为您初始化。通过执行这行代码,您将丢弃旧的UIImageView
并用没有框架的新UIImageView
替换它。
你只需要这样做:
[self.image setImage:imageFromCamera]
另外,您可能从 info.xml 中获取了错误的图像。尝试UIImagePickerControllerOriginalImage
而不是UIImagePickerControllerEditedImage
。
希望这有帮助,干杯!
【讨论】:
你在这两个方面都是对的。非常感谢。我喜欢 ***!【参考方案2】:UIImage 视图有一个名为image
的属性。
此属性的类型为UIImage
。
所以如果你有UIImage
,那么你可以如下设置属性:
imageView.image = image;
【讨论】:
【参考方案3】:// this is your delegate method to set the image taken from your camera
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
// Get the picture from the camera
UIImage *imageFromCamera = [info objectForKey:UIImagePickerControllerEditedImage];
// alloc image view as you have to set it image on it
UIImageView *imgView = [[UIImageView alloc]init];
imgView.image = imageFromCamera;
// you can also set the image on button like this
UIImage *imageFromCamera = [info objectForKey:UIImagePickerControllerEditedImage];
// imgBtn is UIButton property
[self.imgBtn setImage:imageFromCamera forState:UIControlStateNormal];
// Let's take a closer look at this
NSLog(@"%@", self.image);
// Close the camera view controller
[self dismissViewControllerAnimated:YES completion:nil];
【讨论】:
【参考方案4】:您可以尝试使用此代码来显示您的图像。
imageView.image : UIImage = UIImage(named: "YourImageName")
希望这可以帮助您解决问题。
【讨论】:
以上是关于如何在 UIImageView 中显示 UIImage?的主要内容,如果未能解决你的问题,请参考以下文章