|
//
// TPImageBaseView.m
// ThePaperDemo
//
// Created by zhousan on 15/7/16.
// Copyright (c) 2015年 scar1900. All rights reserved.
//
#import "TPImageBaseView.h"
#define IMAGEVIEW_WIDTG (rect_screen.size.width-20)
#define IMAGEVIEW_HEIGHT 125*IMAGEVIEW_WIDTG/300
#define DESCLABEL_HEIGHT 30
#define SPECE_TO_LEFT 10
@interface TPImageBaseView () {
UIView *labelBackView;
}
@property (nonatomic, strong) NSString *descString; //描述文字
@property (nonatomic, strong) NSString *imageUrl;
@property (nonatomic, strong) NSString *imageCount; //图片数量,仅在类型为图片类型是setter
@property (nonatomic, strong) AsyncImageView *imageView;
@property (nonatomic, strong) UILabel *descLabel;
@property (nonatomic, strong) UIImageView *imageIcon;
@property (nonatomic, strong) UILabel *countLabel;
@property (nonatomic, strong) UIImageView *vedioIcon;
@end
@implementation TPImageBaseView
- (id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
[self addSubview:self.imageView];
[self.imageView addSubview:self.imageIcon];
[self.imageView addSubview:self.countLabel];
[self.imageView addSubview:self.vedioIcon];
labelBackView = [[UIView alloc] initWithFrame:CGRectZero];
labelBackView.backgroundColor = [UIColor colorWithHexString:SpecialTopicColor];
[self addSubview:labelBackView];
[labelBackView addSubview:self.descLabel];
[self layoutSubViews];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(needrefreshNightMode:) name:REFRESHAFTERNIGHTMODE object:nil];
}
return self;
}
- (void)needrefreshNightMode:(id)sender{
[self setType:self.type];
}
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (void)setListContent:(listContObjectVO *)listContent {
if (_listContent != listContent) {
_listContent = listContent;
[self setDescString:_listContent.name];
[self setImageUrl:_listContent.pic];
[self setImageCount:_listContent.imageNum];
}
}
- (void)setSpecialBO:(specialObjectBO *)specialBO {
if (_specialBO != specialBO) {
_specialBO = specialBO;
[self setImageUrl:_specialBO.pic];
}
}
- (AsyncImageView *)imageView {
if (_imageView == nil) {
_imageView = [[AsyncImageView alloc] initWithFrame:CGRectZero];
}
return _imageView;
}
- (UIImageView *)imageIcon {
if (_imageIcon == nil) {
_imageIcon = [[UIImageView alloc] initWithFrame:CGRectZero];
_imageIcon.image = Image(@"topic/imageScan.png");
}
return _imageIcon;
}
- (UIImageView *)vedioIcon {
if (_vedioIcon == nil) {
_vedioIcon = [[UIImageView alloc] initWithFrame:CGRectZero];
_vedioIcon.image = Image(@"topic/vedioIcon.png");
}
return _vedioIcon;
}
- (UILabel *)countLabel {
if (_countLabel == nil) {
_countLabel = [[UILabel alloc] initWithFrame:CGRectZero];
_countLabel.font = appFont(12, NO);
_countLabel.textAlignment = NSTextAlignmentLeft;
_countLabel.textColor = [UIColor whiteColor];
_countLabel.backgroundColor = [UIColor clearColor];
}
return _countLabel;
}
- (UILabel *)descLabel {
if (_descLabel == nil) {
_descLabel = [[UILabel alloc]initWithFrame:CGRectZero];
_descLabel.textAlignment = NSTextAlignmentLeft;
_descLabel.font = appFont(TEXT_FOUR_LEVELSIZE, NO);
_descLabel.lineBreakMode = NSLineBreakByTruncatingTail;
/**
* bug:4999(专题:幻灯片标题如果不能完全显示需要用“...”显示)
*/
_descLabel.numberOfLines = 0;
_descLabel.textColor = [UIColor whiteColor];
_descLabel.backgroundColor = [UIColor clearColor];
}
return _descLabel;
}
#pragma mark - setter
- (void)setDescString:(NSString *)descString {
if (_descString != descString) {
_descString = descString;
self.descLabel.text = descString;
}
}
- (void)setImageUrl:(NSString *)imageUrl {
if (_imageUrl != imageUrl) {
_imageUrl = imageUrl;
_imageView.imageUrl = imageUrl;
_imageView.imageId = getImageNameFromURL(imageUrl);
}
}
- (void)setImageCount:(NSString *)imageCount {
if (_imageCount != imageCount) {
_imageCount = imageCount;
self.countLabel.text = imageCount;
}
}
- (void)setType:(BASEIMAGETYPE)type {
_type = type;
switch (type) {
case BASEIMAGETYPEIMAGE:
self.vedioIcon.hidden = YES;
break;
case BASEIMAGETYPEVEDIO:
self.imageIcon.hidden = YES;
self.countLabel.hidden = YES;
break;
case BASEIMAGETYPEFLOW:
self.vedioIcon.hidden = YES;
self.imageIcon.hidden = YES;
self.countLabel.hidden = YES;
break;
case BASEIMAGETYPESIMPLEIMAGE:
self.vedioIcon.hidden = YES;
self.imageIcon.hidden = YES;
self.countLabel.hidden = YES;
self.descLabel.hidden = YES;
labelBackView.backgroundColor = [UIColor colorWithHexString:CELLBACKCOLOR];
[self relayoutSubViews];
break;
default:
break;
}
}
- (void)layoutSubViews {
[self.imageView remakeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.left).offset(SPECE_TO_LEFT);
make.top.equalTo(self.top).offset(5);
make.width.mas_equalTo(IMAGEVIEW_WIDTG);
make.height.mas_equalTo(IMAGEVIEW_HEIGHT);
}];
[labelBackView remakeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.imageView.left);
make.top.equalTo(self.imageView.bottom);
make.width.equalTo(self.imageView.width);
make.height.mas_equalTo(DESCLABEL_HEIGHT);
}];
[self.descLabel makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(labelBackView.left).offset(5);
make.top.equalTo(labelBackView.top);
make.width.mas_equalTo(IMAGEVIEW_WIDTG-10);
make.height.mas_equalTo(DESCLABEL_HEIGHT);
}];
[self.imageIcon remakeConstraints:^(MASConstraintMaker *make) {
make.bottom.equalTo(self.imageView.bottom).offset(-10);
make.right.equalTo(self.imageView.right).offset(-20);
make.width.mas_equalTo(24);
make.height.mas_equalTo(18);
}];
[self.countLabel remakeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.imageIcon.right).offset(1);
make.right.equalTo(self.imageView.right);
make.top.equalTo(self.imageIcon.top);
make.bottom.equalTo(self.imageIcon.bottom);
}];
[self.vedioIcon remakeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(self.imageView.centerX);
make.centerY.equalTo(self.imageView.centerY);
make.width.mas_equalTo(25);
make.height.mas_equalTo(25);
}];
}
- (void)relayoutSubViews {
[self.imageView remakeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.left).offset(0);
make.top.equalTo(self.top).offset(0);
make.width.mas_equalTo(rect_screen.size.width);
make.height.mas_equalTo(125*(rect_screen.size.width)/300);
}];
[labelBackView remakeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.left);
make.top.equalTo(self.imageView.bottom);
make.width.equalTo(rect_screen.size.width);
make.height.mas_equalTo(10);
}];
}
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
// Drawing code
}
*/
@end
|