热更新demo

TPImageBaseView.m 7.6KB

    // // TPImageBaseView.m // ThePaperDemo // // Created by zhousan on 15/7/16. // Copyright (c) 2015年 scar1900. All rights reserved. // #import "TPImageBaseView.h" #define IMAGEVIEW_WIDTG (rect_screen.size.width-20) #define IMAGEVIEW_HEIGHT 125*IMAGEVIEW_WIDTG/300 #define DESCLABEL_HEIGHT 30 #define SPECE_TO_LEFT 10 @interface TPImageBaseView () { UIView *labelBackView; } @property (nonatomic, strong) NSString *descString; //描述文字 @property (nonatomic, strong) NSString *imageUrl; @property (nonatomic, strong) NSString *imageCount; //图片数量,仅在类型为图片类型是setter @property (nonatomic, strong) AsyncImageView *imageView; @property (nonatomic, strong) UILabel *descLabel; @property (nonatomic, strong) UIImageView *imageIcon; @property (nonatomic, strong) UILabel *countLabel; @property (nonatomic, strong) UIImageView *vedioIcon; @end @implementation TPImageBaseView - (id)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { [self addSubview:self.imageView]; [self.imageView addSubview:self.imageIcon]; [self.imageView addSubview:self.countLabel]; [self.imageView addSubview:self.vedioIcon]; labelBackView = [[UIView alloc] initWithFrame:CGRectZero]; labelBackView.backgroundColor = [UIColor colorWithHexString:SpecialTopicColor]; [self addSubview:labelBackView]; [labelBackView addSubview:self.descLabel]; [self layoutSubViews]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(needrefreshNightMode:) name:REFRESHAFTERNIGHTMODE object:nil]; } return self; } - (void)needrefreshNightMode:(id)sender{ [self setType:self.type]; } - (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; } - (void)setListContent:(listContObjectVO *)listContent { if (_listContent != listContent) { _listContent = listContent; [self setDescString:_listContent.name]; [self setImageUrl:_listContent.pic]; [self setImageCount:_listContent.imageNum]; } } - (void)setSpecialBO:(specialObjectBO *)specialBO { if (_specialBO != specialBO) { _specialBO = specialBO; [self setImageUrl:_specialBO.pic]; } } - (AsyncImageView *)imageView { if (_imageView == nil) { _imageView = [[AsyncImageView alloc] initWithFrame:CGRectZero]; } return _imageView; } - (UIImageView *)imageIcon { if (_imageIcon == nil) { _imageIcon = [[UIImageView alloc] initWithFrame:CGRectZero]; _imageIcon.image = Image(@"topic/imageScan.png"); } return _imageIcon; } - (UIImageView *)vedioIcon { if (_vedioIcon == nil) { _vedioIcon = [[UIImageView alloc] initWithFrame:CGRectZero]; _vedioIcon.image = Image(@"topic/vedioIcon.png"); } return _vedioIcon; } - (UILabel *)countLabel { if (_countLabel == nil) { _countLabel = [[UILabel alloc] initWithFrame:CGRectZero]; _countLabel.font = appFont(12, NO); _countLabel.textAlignment = NSTextAlignmentLeft; _countLabel.textColor = [UIColor whiteColor]; _countLabel.backgroundColor = [UIColor clearColor]; } return _countLabel; } - (UILabel *)descLabel { if (_descLabel == nil) { _descLabel = [[UILabel alloc]initWithFrame:CGRectZero]; _descLabel.textAlignment = NSTextAlignmentLeft; _descLabel.font = appFont(TEXT_FOUR_LEVELSIZE, NO); _descLabel.lineBreakMode = NSLineBreakByTruncatingTail; /** * bug:4999(专题:幻灯片标题如果不能完全显示需要用“...”显示) */ _descLabel.numberOfLines = 0; _descLabel.textColor = [UIColor whiteColor]; _descLabel.backgroundColor = [UIColor clearColor]; } return _descLabel; } #pragma mark - setter - (void)setDescString:(NSString *)descString { if (_descString != descString) { _descString = descString; self.descLabel.text = descString; } } - (void)setImageUrl:(NSString *)imageUrl { if (_imageUrl != imageUrl) { _imageUrl = imageUrl; _imageView.imageUrl = imageUrl; _imageView.imageId = getImageNameFromURL(imageUrl); } } - (void)setImageCount:(NSString *)imageCount { if (_imageCount != imageCount) { _imageCount = imageCount; self.countLabel.text = imageCount; } } - (void)setType:(BASEIMAGETYPE)type { _type = type; switch (type) { case BASEIMAGETYPEIMAGE: self.vedioIcon.hidden = YES; break; case BASEIMAGETYPEVEDIO: self.imageIcon.hidden = YES; self.countLabel.hidden = YES; break; case BASEIMAGETYPEFLOW: self.vedioIcon.hidden = YES; self.imageIcon.hidden = YES; self.countLabel.hidden = YES; break; case BASEIMAGETYPESIMPLEIMAGE: self.vedioIcon.hidden = YES; self.imageIcon.hidden = YES; self.countLabel.hidden = YES; self.descLabel.hidden = YES; labelBackView.backgroundColor = [UIColor colorWithHexString:CELLBACKCOLOR]; [self relayoutSubViews]; break; default: break; } } - (void)layoutSubViews { [self.imageView remakeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self.left).offset(SPECE_TO_LEFT); make.top.equalTo(self.top).offset(5); make.width.mas_equalTo(IMAGEVIEW_WIDTG); make.height.mas_equalTo(IMAGEVIEW_HEIGHT); }]; [labelBackView remakeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self.imageView.left); make.top.equalTo(self.imageView.bottom); make.width.equalTo(self.imageView.width); make.height.mas_equalTo(DESCLABEL_HEIGHT); }]; [self.descLabel makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(labelBackView.left).offset(5); make.top.equalTo(labelBackView.top); make.width.mas_equalTo(IMAGEVIEW_WIDTG-10); make.height.mas_equalTo(DESCLABEL_HEIGHT); }]; [self.imageIcon remakeConstraints:^(MASConstraintMaker *make) { make.bottom.equalTo(self.imageView.bottom).offset(-10); make.right.equalTo(self.imageView.right).offset(-20); make.width.mas_equalTo(24); make.height.mas_equalTo(18); }]; [self.countLabel remakeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self.imageIcon.right).offset(1); make.right.equalTo(self.imageView.right); make.top.equalTo(self.imageIcon.top); make.bottom.equalTo(self.imageIcon.bottom); }]; [self.vedioIcon remakeConstraints:^(MASConstraintMaker *make) { make.centerX.equalTo(self.imageView.centerX); make.centerY.equalTo(self.imageView.centerY); make.width.mas_equalTo(25); make.height.mas_equalTo(25); }]; } - (void)relayoutSubViews { [self.imageView remakeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self.left).offset(0); make.top.equalTo(self.top).offset(0); make.width.mas_equalTo(rect_screen.size.width); make.height.mas_equalTo(125*(rect_screen.size.width)/300); }]; [labelBackView remakeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self.left); make.top.equalTo(self.imageView.bottom); make.width.equalTo(rect_screen.size.width); make.height.mas_equalTo(10); }]; } /* // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affects performance during animation. - (void)drawRect:(CGRect)rect { // Drawing code } */ @end