使用 SDWebImage 时如何设置 contentMode

How to set contentMode when using SDWebImage

我用的是SDWebImage,遇到一个问题
我有一个 UIButton 的 ABCButton 子类。

@interface ABCButton : UIButton
@property (weak, nonatomic) SAIBanner *banner;
@end
@implementation ABCButton
- (void)setBanner:(SAIBanner *)banner {
    _banner = banner;
    self.contentMode = UIViewContentModeScaleAspectFit;
    [self sd_setImageWithURL:[NSURL URLWithString:banner.bannerPicUrl] forState:UIControlStateNormal placeholderImage:[UIImage     imageNamed:@"default_banner"]];
}
@end   

我发现 setContentMode 不起作用,我的问题是如何在使用 SDWebImage 时设置 contentModeUIButtonUIImageView

contentModeUIView class 的 属性。所以你可以在它的所有子classes (UIButton, UIImageView...) 中找到它你想指定应该如何调整图像所以你必须设置 contentMode 在按钮 UIImageView 属性 中。如前所述,该按钮具有继承自 UIViewcontentMode 属性,但不是您需要设置的 属性。

所以你应该改变:

self.contentMode

来自

[self imageView].contentMode

这里是完整的代码:

@interface ABCButton : UIButton
@property (weak, nonatomic) SAIBanner *banner;
@end
@implementation ABCButton
- (void)setBanner:(SAIBanner *)banner {
    _banner = banner;
    [self imageView].contentMode = UIViewContentModeScaleAspectFit;
    [self sd_setImageWithURL:[NSURL URLWithString:banner.bannerPicUrl] forState:UIControlStateNormal placeholderImage:[UIImage     imageNamed:@"default_banner"]];
}
@end