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