热更新demo

videoCell.m 8.5KB

    // // videoCell.m // ThePaperDemo // // Created by scar1900 on 14/11/5. // Copyright (c) 2014年 scar1900. All rights reserved. // #import "videoCell.h" #import "AsyncImageView.h" #import "Reachability.h" @interface videoCell() { CGFloat contentPadding; } @property(nonatomic, strong)AsyncImageView *imgView; @property(nonatomic, strong)UILabel *destLabel; @property(nonatomic, strong)UIImageView *vedioIcon; @end @implementation videoCell @synthesize imageBO = _imageBO; @synthesize videoBO = _videoBO; @synthesize delegate; @synthesize indexPath; - (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 addSubview:self.imgView]; [self.imgView addSubview:self.vedioIcon]; [self addSubview:self.destLabel]; [self addSubview:self.noImageButton]; [self.noImageButton makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self); make.centerX.equalTo(self); make.size.equalTo(CGSizeMake(150, 120)); }]; UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 80, 50)]; imageView.image = Image(@"detailPage/noImageVedio.png") ; [self.noImageButton addSubview:imageView]; imageView.center = CGPointMake(75, 60); [[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 ([self.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{ _destLabel.textColor = [UIColor colorWithHexString:strongDescColor]; _noImageButton.backgroundColor = [[TPUserDefault instance].isNightMode integerValue] > 0 ? [UIColor colorWithHexString:@"0x3d3d3e"] : [UIColor colorWithHexString:@"0xedf1f4"]; } - (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; } - (UIImageView *)vedioIcon { if (!_vedioIcon) { _vedioIcon = [[UIImageView alloc] initWithFrame:CGRectZero]; _vedioIcon.image = Image(@"detailPage/vedioIcon_detail.png"); } return _vedioIcon; } - (void)setImageBO:(imageObjectBO *)data { _imageBO = data; if ([data.tags isEqualToString:@"www_video"]) { // self.imgView.isVideo = YES; UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(clickVideo:)]; [self.imgView addGestureRecognizer:tapGesture]; }else { // self.imgView.isVideo = NO; } int readmode = [[TPUserDefault instance].readModeStr intValue]; if (readmode == intelligentMode) { if ([Remote IsEnableWIFI]) { readmode = imageMode; }else { readmode = textMode; } } if (readmode == imageMode) { self.imgView.imageUrl = data.url; self.imgView.imageId = getImageNameFromURL(data.url); self.imgView.hidden = NO; self.noImageButton.hidden = YES; }else{ if ([_imageBO.isTap isEqualToString:@"1"]) { self.imgView.imageUrl = data.url; self.imgView.imageId = getImageNameFromURL(data.url); self.imgView.hidden = NO; self.noImageButton.hidden = YES; }else { self.imgView.hidden = YES; self.noImageButton.hidden = NO; } } } - (void)setVideoBO:(videoObjectBO *)video { _videoBO = video; if (!video) { self.clipsToBounds = YES; return; } NSAttributedString *attriString = getLineSpaceAttributedString(video.name, [iphoneLineSpaceAndParaSpace returnLevel3LineSpace_specialTopic], appFont(TEXT_FOUR_LEVELSIZE, NO)); self.destLabel.attributedText = attriString; } - (UIButton *)noImageButton { if (nil == _noImageButton) { _noImageButton = [UIButton buttonWithType:UIButtonTypeCustom]; _noImageButton.backgroundColor = [[TPUserDefault instance].isNightMode integerValue] > 0 ? [UIColor colorWithHexString:@"0x3d3d3e"] : [UIColor colorWithHexString:@"0xedf1f4"]; /** * bug:5140(夜间模式,无图模式,新闻详情页,图片和视频加载需要做反色1) */ [_noImageButton addTarget:self action:@selector(setImageButtonClick:) forControlEvents:UIControlEventTouchUpInside]; _noImageButton.hidden = YES; } return _noImageButton; } - (AsyncImageView*)imgView { if (!_imgView) { _imgView = [[AsyncImageView alloc]initWithFrame:CGRectZero]; _imgView.backgroundColor = [UIColor clearColor]; } return _imgView; } - (UILabel*)destLabel { if (!_destLabel) { _destLabel = [[UILabel alloc]initWithFrame:CGRectZero]; _destLabel.backgroundColor = [UIColor clearColor]; _destLabel.textAlignment = NSTextAlignmentLeft; _destLabel.textColor = [UIColor colorWithHexString:strongDescColor]; _destLabel.lineBreakMode = NSLineBreakByWordWrapping; _destLabel.numberOfLines = 0; } _destLabel.font = appFont(TEXT_FOUR_LEVELSIZE, NO); return _destLabel; } - (void)setImageButtonClick:(id)sender { if ([self.videoBO.isTap isEqualToString:@"1"]) { [self clickVideo:nil]; }else { if ([self.delegate respondsToSelector:@selector(clickLoadVideoWith:Cell:)]) { [self.delegate clickLoadVideoWith:self.videoBO Cell:self]; } } } - (void)clickVideo:(UITapGestureRecognizer*)tapGesture { if ([delegate conformsToProtocol:@protocol(videoCellDelegate)] && [delegate respondsToSelector:@selector(clickToPlayVideo:indexPath:imageSize:)]) { [delegate clickToPlayVideo:CGRectMake(0, 0, rect_screen.size.width, self.imgView.frame.size.height/self.imgView.frame.size.width*rect_screen.size.width) indexPath:self.indexPath imageSize:self.imgView.frame.size]; } } - (void)layoutSubviews { CGSize size = CGSizeMake(rect_screen.size.width-2*contentPadding, [self.imageBO.height floatValue]/2*(rect_screen.size.width-2*contentPadding)/([self.imageBO.width floatValue]/2)); int readmode = [[TPUserDefault instance].readModeStr intValue]; if (readmode == intelligentMode) { if ([Remote IsEnableWIFI]) { readmode = imageMode; }else { readmode = textMode; } } if (readmode == imageMode) { self.imgView.frame = CGRectMake(contentPadding, 0, size.width, size.height); }else{ self.imgView.frame = CGRectMake(contentPadding, 0, size.width, size.height); if ([_imageBO.isTap isEqualToString:@"1"]) { }else { self.imgView.frame = CGRectMake(10, 0, size.width, size.height); size = CGSizeMake(150, 120); } } if (self.imageBO) { self.vedioIcon.frame = CGRectMake(CGRectGetWidth(self.imgView.bounds)-60, CGRectGetHeight(self.imgView.bounds)-60, 40, 40); } CGFloat height = [self.destLabel sizeThatFits:CGSizeMake(rect_screen.size.width-2*contentPadding, CGFLOAT_MAX)].height; self.destLabel.frame = CGRectMake(contentPadding, size.height + 5, rect_screen.size.width-2*contentPadding, height); [super layoutSubviews]; } - (void)awakeFromNib { // Initialization code } - (void)setSelected:(BOOL)selected animated:(BOOL)animated { [super setSelected:selected animated:animated]; // Configure the view for the selected state } @end