首先得到图片的url并检查图片的url长度是否大于零/不是null
。并确保图像网址工作正常与否。点击Browser
上的url
,然后检查您是否获得了正确的图像。
SDWebImage
库正在更新按钮图像,但这不会发生在Main Thread
上。这可能是不更新UIButton
的backgroundImage
的原因。
- (void)sd_setBackgroundImageWithURL:(nullable NSURL *)url
forState:(UIControlState)state
placeholderImage:(nullable UIImage *)placeholder
options:(SDWebImageOptions)options
completed:(nullable SDExternalCompletionBlock)completedBlock {
if (!url) {
[self.imageURLStorage removeObjectForKey:@(state)];
return;
}
NSString *imageURL = [arrayGallery valueForKey:@"link"][0];
self.imageURLStorage[@(state)] = url;
__weak typeof(self)weakSelf = self;
[self sd_internalSetImageWithURL:url
placeholderImage:placeholder
options:options
operationKey:[NSString stringWithFormat:@"UIButtonBackgroundImageOperation%@", @(state)]
setImageBlock:^(UIImage *image, NSData *imageData) {
[weakSelf setBackgroundImage:image forState:state];
}
progress:nil
completed:completedBlock];
}
loader
停止动画和上main thread
设置UIButton
背景图像。
NSString *imageURL = [arrayGallery valueForKey:@"link"][0];
if (imageURL.length > 0) {
[_Image1 sd_setBackgroundImageWithURL:[NSURL URLWithString:imageURL] forState:UIControlStateNormal placeholderImage:[UIImage imageNamed:@"blurred-background"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
dispatch_async(dispatch_get_main_queue(), ^{
[_ImageLoader1 stopAnimating];
[_ImageLoader1 removeFromSuperview];
[_Image1 setBackgroundImage:image forState:UIControlStateNormal];
});
}];
}
不能使用'_Image1.image =图像'作为按钮 – meowsush
@meowsush检查我编辑的答案,如果它的工作标记为接受的答案 – vivek