// // liveVideoCell.m // ThePaperHD // // Created by scar1900 on 15/3/11. // Copyright (c) 2015年 scar1900. All rights reserved. // #import "liveVideoCell.h" #import "AsyncImageView.h" #import "Reachability.h" #define CONTENTWIDTH rect_screen.size.width-60 @interface liveVideoCell() { } @property(nonatomic, strong)AsyncImageView *imgView; @property(nonatomic, strong)UILabel *destLabel; @property(nonatomic, strong)imageObjectBO *imageBO; @property(nonatomic, strong)videoObjectBO *videoBO; @property(nonatomic, strong)UIImageView *videoImage; @end @implementation liveVideoCell @synthesize dataDic = _dataDic; @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) { self.backgroundColor = [UIColor colorWithHexString:BackGroundColor]; self.selectionStyle = UITableViewCellSelectionStyleNone; [self addSubview:self.imgView]; [self addSubview:self.destLabel]; [self.imgView addSubview:self.videoImage]; [self addSubview:self.noImageButton]; [self.noImageButton makeConstraints:^(MASConstraintMaker *make) { make.centerX.equalTo(self); make.top.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.videoBO.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{ self.backgroundColor = [UIColor colorWithHexString:BackGroundColor]; _destLabel.textColor = [UIColor colorWithHexString:strongDescColor]; self.noImageButton.backgroundColor = [[TPUserDefault instance].isNightMode integerValue] > 0 ? [UIColor colorWithHexString:@"0x3d3d3e"] : [UIColor colorWithHexString:@"0xedf1f4"]; } - (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; } - (UIImageView*)videoImage { if (!_videoImage) { _videoImage = [[UIImageView alloc]initWithImage:Image(@"detailPage/vedioIcon_detail.png")]; } return _videoImage; } - (void)setDataDic:(NSDictionary *)dic { _dataDic = dic; videoObjectBO *video = dic[@"video"]; imageObjectBO *image = dic[@"image"]; self.imageBO = image; self.videoBO = video; } - (void)setImageBO:(imageObjectBO *)data { _imageBO = data; if ([data.tags isEqualToString:@"www_video"] || [data.tags isEqualToString:@"www_big"]) { UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(clickVideo:)]; [self.imgView addGestureRecognizer:tapGesture]; self.videoImage.hidden = NO; }else { self.videoImage.hidden = YES; } self.imgView.imageUrl = data.url; self.imgView.imageId = getImageNameFromURL(data.url); } - (void)setVideoBO:(videoObjectBO *)video { _videoBO = video; NSAttributedString *attriString = getLineSpaceAttributedString(video.name, [iphoneLineSpaceAndParaSpace returnLevel3LineSpace_specialTopic], appFont(TEXT_FOUR_LEVELSIZE, NO)); self.destLabel.attributedText = attriString; int readmode = [[TPUserDefault instance].readModeStr intValue]; if (readmode == intelligentMode) { if ([Remote IsEnableWIFI]) { readmode = imageMode; }else { readmode = textMode; } } if (readmode == imageMode) { self.imgView.imageUrl = self.imageBO.url; self.imgView.imageId = getImageNameFromURL(self.imageBO.url); self.imgView.hidden = NO; self.noImageButton.hidden = YES; }else{ if ([video.isTap isEqualToString:@"1"]) { self.imgView.imageUrl = self.imageBO.url; self.imgView.imageId = getImageNameFromURL(self.imageBO.url); self.imgView.hidden = NO; self.noImageButton.hidden = YES; }else { self.imgView.hidden = YES; self.noImageButton.hidden = NO; } } [self layoutSubViews]; } - (AsyncImageView*)imgView { if (!_imgView) { _imgView = [[AsyncImageView alloc]initWithFrame:CGRectZero]; _imgView.backgroundColor = [UIColor clearColor]; _imgView.hidden = YES; } return _imgView; } - (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; } return _noImageButton; } - (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(clickVedioImage:Cell:)]) { [self.delegate clickVedioImage:self.imageBO Cell:self]; } } } - (void)clickVideo:(UITapGestureRecognizer*)tapGesture { if ([delegate conformsToProtocol:@protocol(liveVideoCellDelegate)] && [delegate respondsToSelector:@selector(clickToPlayVideo:indexPath:videoBO:)]) { [delegate clickToPlayVideo:self.imgView.bounds indexPath:self.indexPath videoBO:self.videoBO]; } } - (void)layoutSubViews { // CGFloat height = returnTextHeightWithRTLabel(self.videoBO.name, // CONTENTWIDTH, // appFont(TEXT_FOUR_LEVELSIZE, NO), // 5); CGFloat height = [self.destLabel sizeThatFits:CGSizeMake(CONTENTWIDTH, CGFLOAT_MAX)].height; CGFloat temp = 150*rect_screen.size.width/320; if (self.imageBO) { [self.imgView remakeConstraints:^(MASConstraintMaker *make) { make.left.mas_equalTo(self.left).offset(50); make.right.mas_equalTo(self.right).offset(-10); make.top.mas_equalTo(self.top); make.height.mas_equalTo(temp); }]; } int readmode = [[TPUserDefault instance].readModeStr intValue]; if (readmode == intelligentMode) { if ([Remote IsEnableWIFI]) { readmode = imageMode; }else { readmode = textMode; } } if (readmode == imageMode) { [self.destLabel remakeConstraints:^(MASConstraintMaker *make) { make.left.mas_equalTo(self.left).offset(50); make.right.mas_equalTo(self.right).offset(-10); make.top.equalTo(self.imgView.bottom).offset(5); make.height.mas_equalTo(height); }]; }else{ if ([self.videoBO.isTap isEqualToString:@"1"]) { [self.destLabel remakeConstraints:^(MASConstraintMaker *make) { make.left.mas_equalTo(self.left).offset(50); make.right.mas_equalTo(self.right).offset(-10); make.top.mas_equalTo(self.imgView.bottom).offset(5); make.height.mas_equalTo(height); }]; } else { if (self.noImageButton.hidden) { [self.destLabel remakeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self.contentView.left).offset(50); make.right.equalTo(self.contentView.right).offset(-10); make.top.equalTo(self.imgView.bottom).offset(5); make.height.mas_equalTo(height); }]; }else { [self.noImageButton remakeConstraints:^(MASConstraintMaker *make) { make.centerX.equalTo(self); make.centerY.equalTo(self).offset(-height/2-10); make.size.equalTo(CGSizeMake(150, 120)); }]; [self.destLabel remakeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self.contentView.left).offset(50); make.right.equalTo(self.contentView.right).offset(-10); make.top.equalTo(self.noImageButton.bottom).offset(5); make.height.mas_equalTo(height); }]; } } } [self.videoImage makeConstraints:^(MASConstraintMaker *make) { make.right.equalTo(self.imgView).offset(-20); make.bottom.equalTo(self.imgView).offset(-20); make.size.mas_equalTo(CGSizeMake(40, 40)); }]; // self.videoImage.frame = CGRectMake(CGRectGetWidth(self.imgView.bounds)-60, // CGRectGetHeight(self.imgView.bounds)-60, // 40, 40);//【需求】视频:水印修改(bug:4353) } - (void)awakeFromNib { // Initialization code } - (void)setSelected:(BOOL)selected animated:(BOOL)animated { [super setSelected:selected animated:animated]; // Configure the view for the selected state } @end