2016-03-03 99 views
1

我使用SDWebImage,這裏遇到了一個問題。
我有一個UButton的ABCButton子類。如何在使用SDWebImage時設置contentMode

@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時設置的UIButtonUIImageViewcontentMode

回答

0

contentModeUIView類的財產。所以你可以在它的所有子類中找到它(UIButton,UIImageView ...)你想指定應該如何調整圖像,所以你必須在按鈕UIImageView屬性中設置contentMode。如前所述,該按鈕具有從UIView繼承的contentMode屬性,但不是您需要設置的屬性。

所以,你應該改變:

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 
相關問題