搜尋

首頁  >  問答  >  主體

objective-c - SDWebImage載入的網路圖片,如何調整顯示圖片的尺寸

如圖:這是一張6s的手機螢幕截圖。我把他放在了一個寬度=手機螢幕寬度,高度210的UIImageView。這張圖片是透過網路載入取得的。這裡我用的是SDWebImage。我現在希望圖片能顯示得好好看些,我的想法是裁剪這張圖片。問題是這裡的網路請求是異步的。我不知道在什麼地方處理它。

我的核心問題是不知道基於SDWebImage載入的網路圖片載入完成後在哪裡裁剪它。

我想讓上線的圖片呈現下面的顯示方式:關於裁剪部分的程式碼我已經有了。我只是不知道在哪裡修改它。

滿天的星座滿天的星座2798 天前849

全部回覆(1)我來回復

  • 淡淡烟草味

    淡淡烟草味2017-05-02 09:31:09

    使用下載選項 SDWebImageAvoidAutoSetImage, 下载完成后在后台剪裁,然后在主线程设置image并调用刷新。
    可以给 UIImageView 寫個類別方便呼叫。

    UIImageView *imageView;
    
        __weak __typeof(&*imageView) weakImageView = imageView;
        [imageView sd_setImageWithURL:url
                     placeholderImage:placeholder
                              options:SDWebImageAvoidAutoSetImage // 下载完成后不要自动设置image
                            completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
            dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
                image = [image croppedImage:...]; // 后台线程剪裁图片
    
                dispatch_async(dispatch_get_main_queue(), ^{
                    __typeof(&*weakImageView) strongImageView = weakImageView;
                    if (strongImageView) {
                        strongImageView.image = image;
                        [strongImageView setNeedsLayout];
                    }
                });
            });
        }];

    回覆
    0
  • 取消回覆