图像未出现在视图中(iPhone)

时间:2011-08-17 06:32:48

标签: 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);
    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];
    }   
});

5 个答案:

答案 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);