我有一个无法显示图像的viewcontroller,这是我的代码:
- (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);
}
以前工作得非常好,但是在我对其他视图控制器进行了一些更改后(我没有在这个中进行任何更改),它不再显示图像,我无法弄清楚发生了什么
当我使用“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];
}
});
答案 0 :(得分:0)
你可以使用[scrollView bringSubviewToFront:imageView]; 并且还要确保你的imageView已经分配了一些内存。
答案 1 :(得分:0)
您的问题必须在其他地方,或图像本身的问题。除非你在代码中的其他地方更改了它,否则它不会在这里引起问题。据我所知,这里的所有代码都是完全正确的。检查您添加的其他视图控制器以及XIB中的所有控制器是否正确连接。即使它是,重新连接图像视图和滚动视图。滚动视图是否正确显示?
答案 2 :(得分:0)
可以调试并检查后面的scrollView大小: scrollView.contentSize = image.size; 否则尝试保持静态并尝试,如果它显示结果然后它的内容大小的问题,因为你保持image.size。
答案 3 :(得分:0)
然后输入 scrollView.contentSize = CGSizeMake(image.frame.size.width,image.frame.size.height);
它可能会奏效。
答案 4 :(得分:0)
请查看图像视图的框架。如果它(0,0)它将不显示结果。
并在下面的代码中用图像视图替换图像。
scrollView.contentSize = CGSizeMake(imageView.frame.size.width,imageView.frame.size.height);