|
//
// 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
|