如图:这是一张6s的手机屏幕截图。我把他放在了一个宽度=手机屏幕宽度,高度为210的UIImageView中。这张图片是通过网络加载获取的。这里我用的是SDWebImage。我现在希望图片能显示得好看些,我的想法是裁剪这张图片。问题是这里的网络请求是异步的。我不知道在什么地方处理它。
我的核心问题是不知道基于SDWebImage加载的网络图片加载完成后在哪里裁剪它。
我想让上线的图片呈现下面的显示方式:关于裁剪部分的代码我已经有了。我只是不知道在哪里修改它。
Gunakan pilihan muat turun SDWebImageAvoidAutoSetImage, klip di latar belakang selepas muat turun selesai, kemudian tetapkan imej dalam urutan utama dan panggil muat semula. Anda boleh menulis kategori untuk UIImageView untuk memudahkan panggilan.
SDWebImageAvoidAutoSetImage
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]; } }); }); }];
Gunakan pilihan muat turun
SDWebImageAvoidAutoSetImage
, klip di latar belakang selepas muat turun selesai, kemudian tetapkan imej dalam urutan utama dan panggil muat semula.Anda boleh menulis kategori untuk
UIImageView
untuk memudahkan panggilan.