簡體   English   中英

UIImageView.image不接收UIImage的值

[英]UIImageView.image Not Receiving Value of UIImage

我在將圖像的值分配給圖像視圖圖像時遇到困難。 我測試了源圖像在分配給圖像視圖圖像時是否具有值,並且確實如此。 但是,分配似乎沒有發生,並且圖像視圖圖像保持為空。 有人可以幫我解決我做錯的事情嗎?

謝謝。

- (void)viewDidLoad {
    [super viewDidLoad];

    self.scrollView.contentSize = self.imageView.image.size;
    self.scrollView.delegate = self;
    self.scrollView.minimumZoomScale = 1.0;
    self.scrollView.maximumZoomScale = 100.0;

    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
    dispatch_async(queue, ^{

        NSString *imageName = @"http://my.domain.com/image.png";
        UIImage *img = [[UIImage alloc] init];
        NSURL *imageURL = [NSURL URLWithString:imageName];

        [self.activityIndicator startAnimating];

        NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
        img = [UIImage imageWithData:imageData];

        dispatch_async(dispatch_get_main_queue(), ^{

            self.imageView.image = img;//img HAS a value, but self.imageView.image does NOT receive it

            [self.activityIndicator stopAnimating];
            [self.imageView setNeedsDisplay];
        });
    });
}

我認為UIImage問題。 在其中分配UIImage對象。 嘗試這個 :

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
dispatch_async(queue, ^{

   [self.activityIndicator startAnimating];
    NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://techbeasts.com/wp-content/uploads/2014/04/Wallpaper-HD.jpg"]];  // Your image URL. First check it in browser image is there.

    dispatch_async(dispatch_get_main_queue(), ^{

        self.imageView.image = [UIImage imageWithData:imageData];//img HAS a value, but self.imageView.image does NOT receive it
        [self.activityIndicator stopAnimating];
        [self.imageView setNeedsDisplay];
    });
});

問題在於,您必須使用dispatch_asyncdispatch_sync對。 因此,內部塊將等到外部塊完成其執行並下載映像。

   dispatch_async(queue, ^{

        NSString *imageName = @"http://my.domain.com/image.png";
        UIImage *img = [[UIImage alloc] init];
        NSURL *imageURL = [NSURL URLWithString:imageName];

        [self.activityIndicator startAnimating];

        NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
        img = [UIImage imageWithData:imageData];

        dispatch_sync(dispatch_get_main_queue(), ^{

            self.imageView.image = img;//img HAS a value, but self.imageView.image does NOT receive it

            [self.activityIndicator stopAnimating];
            [self.imageView setNeedsDisplay];
        });
    });

然后確保imageView或者通過編程方式或使用IB與分配。

插座未正確連接。 重新連接解決了該問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM