热更新demo

cntentImageCell.m 9.5KB

    // // cntentImageCell.m // ThePaperDemo // // Created by scar1900 on 14/11/5. // Copyright (c) 2014年 scar1900. All rights reserved. // #import "cntentImageCell.h" #import "AsyncImageView.h" #import "Reachability.h" //#import "SDWebImageManager.h" @interface cntentImageCell() { CGSize imageSize; CGFloat descHeight; CGFloat contentPadding; } @property(nonatomic, strong)AsyncImageView *imgView; @property(nonatomic, strong)UILabel *destLabel; @end @implementation cntentImageCell @synthesize imageBO = _imageBO; - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; if (self) { if (IS_IPHONE_6P) { contentPadding = 15; }else if (IS_IPHONE_6) { contentPadding = 15; }else { contentPadding = 10; } self.backgroundColor = [UIColor clearColor]; self.selectionStyle = UITableViewCellSelectionStyleNone; [self.contentView addSubview:self.imgView]; [self.contentView addSubview:self.destLabel]; [self.imgView makeConstraints:^(MASConstraintMaker *make) { make.centerX.equalTo(self.contentView.centerX); make.top.equalTo(self.contentView.top); make.width.mas_equalTo(imageSize.width); make.height.mas_equalTo(imageSize.height); }]; UITapGestureRecognizer *imageTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(clickImageHandler:)]; imageTap.numberOfTapsRequired = 1; [self addGestureRecognizer:imageTap]; [self.contentView addSubview:self.noImageButton]; [self.noImageButton makeConstraints:^(MASConstraintMaker *make) { make.centerX.equalTo(self); make.centerY.equalTo(self); make.size.equalTo(CGSizeMake(150, 120)); }]; UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 80, 50)]; imageView.image = Image(@"detailPage/noImagePic.png") ; [self.noImageButton addSubview:imageView]; imageView.center = CGPointMake(75, 60); [self.destLabel makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self.contentView.left).offset(contentPadding); make.right.equalTo(self.contentView.right).offset(-contentPadding); make.top.equalTo(self.imgView.bottom).offset(5); make.height.equalTo(@0); }]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(needrefreshNightMode:) name:REFRESHAFTERNIGHTMODE object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil]; } return self; } - (void)reachabilityChanged:(NSNotification *)note { if ([_imageBO.isTap isEqualToString:@"1"] && [Remote IsEableNetwork]) { self.imgView.imageUrl = self.imageBO.url; self.imgView.imageId = @""; self.imgView.imageId = getImageNameFromURL(self.imageBO.url); } } - (void)needrefreshNightMode:(id)sender{ _noImageButton.backgroundColor = [[TPUserDefault instance].isNightMode integerValue] > 0 ? [UIColor colorWithHexString:@"0x3d3d3e"] : [UIColor colorWithHexString:@"0xedf1f4"]; _destLabel.textColor = [UIColor colorWithHexString:imageDescColor]; } - (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; } - (UIButton *)noImageButton { if (nil == _noImageButton) { _noImageButton = [UIButton buttonWithType:UIButtonTypeCustom]; _noImageButton.backgroundColor = [[TPUserDefault instance].isNightMode integerValue] > 0 ? [UIColor colorWithHexString:@"0x3d3d3e"] : [UIColor colorWithHexString:@"0xedf1f4"]; [_noImageButton addTarget:self action:@selector(setImageButtonClick:) forControlEvents:UIControlEventTouchUpInside]; _noImageButton.hidden = YES; /** * bug:5004(新闻详情页,进入新闻详情页时图片加载前会出现“点击加载图片”的按钮,一瞬间) */ } return _noImageButton; } - (UILabel*)destLabel { if (!_destLabel) { _destLabel = [[UILabel alloc]initWithFrame:CGRectZero]; _destLabel.backgroundColor = [UIColor clearColor]; _destLabel.textAlignment = NSTextAlignmentLeft; _destLabel.textColor = [UIColor colorWithHexString:imageDescColor]; _destLabel.lineBreakMode = NSLineBreakByWordWrapping; _destLabel.numberOfLines = 0; /** * bug:5181(【适配性】新闻详情页,4s 5c强关系下方的文字和会滚动条重叠) */ } _destLabel.font = appFont(TEXT_FOUR_LEVELSIZE, NO); return _destLabel; } - (void)clickImageHandler:(UITapGestureRecognizer*)tap { // if ([self.imageBO.isTap isEqualToString:@"1"]) { // return; // } if ([self.delegate respondsToSelector:@selector(clickImage:withImageView:)]) { [self.delegate clickImage:self.imageBO withImageView:[[(cntentImageCell *)tap.view imgView] imageView]]; } } - (void)setImageButtonClick:(id)sender { if ([self.delegate respondsToSelector:@selector(clickLoadImageWith:Cell:)]) { [self.delegate clickLoadImageWith:self.imageBO Cell:self]; } } - (void)setImageBO:(imageObjectBO *)data { _imageBO = data; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSString *imageID =getImageNameFromURL(data.url); imageSize = CGSizeMake([self.imageBO.width floatValue]/2*rect_screen.size.width/320, ([self.imageBO.height floatValue]/2)*rect_screen.size.width/320); int readmode = [[TPUserDefault instance].readModeStr intValue]; if (readmode == intelligentMode) { if ([Remote IsEnableWIFI]) { readmode = imageMode; }else { readmode = textMode; } } if ([TPUserDefault instance].isOffline) { readmode = imageMode; } dispatch_async(dispatch_get_main_queue(), ^{ if (readmode == imageMode) { self.imgView.imageUrl = data.url; self.imgView.imageId = imageID; self.imgView.hidden = NO; self.noImageButton.hidden = YES; }else{ if ([_imageBO.isTap isEqualToString:@"1"]) { self.imgView.imageUrl = data.url; self.imgView.imageId = imageID; self.imgView.hidden = NO; self.noImageButton.hidden = YES; }else { self.imgView.hidden = YES; self.noImageButton.hidden = NO; } } if (isBlankString(data.desc)) { self.destLabel.hidden = YES; self.destLabel.text = @""; descHeight = 0; }else { self.destLabel.hidden = NO; NSAttributedString *attriString = getLineSpaceAttributedString(data.desc, [iphoneLineSpaceAndParaSpace returnLevel3LineSpace_specialTopic], appFont(TEXT_FOUR_LEVELSIZE, NO)); self.destLabel.attributedText = attriString; descHeight = [self.destLabel sizeThatFits:CGSizeMake(rect_screen.size.width-2*contentPadding, CGFLOAT_MAX)].height; } [self setLayoutSubviews]; }); }); } - (AsyncImageView*)imgView { if (!_imgView) { _imgView = [[AsyncImageView alloc]initWithFrame:CGRectZero]; _imgView.backgroundColor = [UIColor clearColor]; } return _imgView; } - (void)setLayoutSubviews { [self.imgView remakeConstraints:^(MASConstraintMaker *make) { make.centerX.equalTo(self.contentView.centerX); make.top.equalTo(self.contentView.top).offset(6); make.width.mas_equalTo(imageSize.width); make.height.mas_equalTo(imageSize.height); }]; if (self.noImageButton.hidden) { [self.destLabel remakeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self.contentView.left).offset(contentPadding); make.right.equalTo(self.contentView.right).offset(-contentPadding); make.top.equalTo(self.imgView.bottom).offset(5); make.height.mas_equalTo(descHeight); }]; }else { [self.noImageButton remakeConstraints:^(MASConstraintMaker *make) { make.centerX.equalTo(self); make.centerY.equalTo(self).offset(-descHeight/2); make.size.equalTo(CGSizeMake(150, 120)); }]; [self.destLabel remakeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self.contentView.left).offset(contentPadding); make.right.equalTo(self.contentView.right).offset(-contentPadding); make.top.equalTo(self.noImageButton.bottom).offset(5); make.height.mas_equalTo(descHeight); }]; } } - (void)awakeFromNib { // Initialization code } - (void)setSelected:(BOOL)selected animated:(BOOL)animated { [super setSelected:selected animated:animated]; // Configure the view for the selected state } @end