我尝试使用 [self.view addSubview:imageView];
显示 UIImageView
但什么也没有发生。 imageView
不为空。我使用以下代码从图像库分配图像;
-(void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSString *mediaType = [info
objectForKey:UIImagePickerControllerMediaType];
[self dismissModalViewControllerAnimated:YES];
if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) {
UIImage *image = [info
objectForKey:UIImagePickerControllerOriginalImage];
[imageView setImage:image];
if (newMedia)
UIImageWriteToSavedPhotosAlbum(image,
self,
@selector(image:finishedSavingWithError:contextInfo:),
nil);
}
}
为什么不起作用?
imageView创建如下;
UIImageView *imageView;
@property (nonatomic, retain) IBOutlet UIImageView *imageView;
@synthesize imageView;
最佳答案
声明和合成属性imageView
不会创建UIImageView
的实例。因此,以下行中的 imageView
为 nil
:
[imageView setImage:image];
在使用UIImageView
之前,您必须先创建一个实例。例如:
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
//...
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
self.imageView = [[UIImageView alloc] initWithFrame:(CGRectMake(100, 100, 100, 100)];
self.imageView.image = image;
[self.view addSubview:self.imageView];
//...
}
或者,如果您正在使用 Interface Builder,您可能忘记链接到 imageView
。
关于iphone - 显示 UIImageView 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12043689/