图像不显示在视图中(iPhone)
我有一个不能显示图像的viewcontroller,下面是我的代码:图像不显示在视图中(iPhone),iphone,uiimageview,Iphone,Uiimageview,我有一个不能显示图像的viewcontroller,下面是我的代码: - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor blackColor]; dispatch_queue_t downloadQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dis
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor blackColor];
dispatch_queue_t downloadQueue =
dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(downloadQueue, ^{
NSData *mydata = [NSData dataWithContentsOfURL:[NSURL URLWithString:imageUrl]];
image = [UIImage imageWithData:mydata];
if (image) {
[imageView initWithImage:image];
scrollView.contentSize = image.size;
scrollView.bounces = NO;
scrollView.minimumZoomScale = 0.5;
scrollView.maximumZoomScale = 2.0;
scrollView.delegate = self;
[scrollView addSubview:imageView];
[self.view addSubview:scrollView];
}
});
dispatch_release(downloadQueue);
}
它以前工作得很好,但在我对其他ViewController做了一些更改(我在这一个中没有做任何更改)之后,它不再显示图像,我无法理解发生了什么
当我使用“dismissModalViewControllerAnimated”函数关闭这个viewcontroller时,我当时确实看到了图像;当我将应用程序设为背景并再次放在前面时,图像会神奇地出现
我完全糊涂了!有什么建议吗
我的问题通过将这些代码放在主队列中解决了,谢谢大家的关注
dispatch_async(dispatch_get_main_queue(), ^{
image = [UIImage imageWithData:mydata];
if (image) {
[imageView initWithImage:image];
scrollView.contentSize = image.size;
scrollView.bounces = NO;
scrollView.minimumZoomScale = 0.5;
scrollView.maximumZoomScale = 2.0;
scrollView.delegate = self;
[scrollView addSubview:imageView];
[self.view addSubview:scrollView];
}
});
您可以使用[scrollView bringSubviewToFront:imageView];
另外,还要确保您的imageView已经分配了一些内存。您的问题必须在其他地方,或者是图像本身的问题。除非您在代码的其他地方更改它,否则它不会在这里引起问题。据我所知,这里的所有代码都是完全正确的。检查您添加的其他视图控制器以及XIBs,以查看是否所有内容都已正确连接。即使是,也要重新连接图像视图和滚动视图。滚动视图显示是否正确?在此之后,您能否调试并检查滚动视图的大小: scrollView.contentSize=image.size; 否则,请尝试将其保持静态并尝试,如果它显示结果,则在保持其图像大小时,内容大小存在问题。然后键入 scrollView.contentSize=CGSizeMake(image.frame.size.width,image.frame.size.height)
它可能会工作。请查看图像视图的框架。如果为(0,0),则不会显示结果 并在下面的代码中将图像替换为图像视图
scrollView.contentSize=CGSizeMake(imageView.frame.size.width,imageView.frame.size.height) 它不起作用。scrollView和imageView是从xib文件初始化的。我在解除此viewcontroller时确实看到了该图像。但是它没有正确显示。imageview也有(0,0)?是的,我可以调试,图像的NSlog结果。大小是(0,0),但图像确实存在。我只做应用程序背景并将其放在模拟器中,图像显示正确。这才是最让我困惑的。你有没有试着在XIB中重新连接东西?这有时会解决一些奇怪的错误。事实上,下载序列中有更多的代码,调试结果告诉我,所有这些代码都已成功执行。但它没有在屏幕上显示执行结果(如删除某些子视图),只有在制作应用程序背景并将其再次放在前面时,结果才会显示在屏幕上,如我之前所述。正如其他人所说,尝试手动将大小设置为(0,0)以外的值,也许你在itI的时候会使用frame,我不认为这是原因,因为在以前的版本中,NSLog结果也是(0,0),并且工作得非常好。但是有一点不同,image和imageView是不同的。你的卷轴应该是图像视图大小。