Files
ifish/Ifish/controllers/IfishTabControllers/消息/IfishMessageViewCell.m
T
2019-05-27 16:41:39 +08:00

240 lines
8.1 KiB
Objective-C

//
// IfishMessageViewCell.m
// Ifish
//
// Created by imac on 16/7/26.
// Copyright © 2016年 lianxiang. All rights reserved.
//
#import "IfishMessageViewCell.h"
//#import "UIImageView+WebCache.h"
@interface IfishMessageViewCell()
Copy NSString *messageId;
Strong UIButton *bgBtn;
@end
@implementation IfishMessageViewCell
-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
self.selectionStyle = UITableViewCellSelectionStyleNone;
[self loadSubViews];
}
return self;
}
-(void)loadSubViews{
[self.contentView addSubview:self.pushTypeImg];
[self.contentView addSubview:self.pushTitle];
[self.contentView addSubview:self.pushContent];
[self.contentView addSubview:self.pushTimeLabel];
[self.contentView addSubview:self.deleteBtn];
[self.contentView addSubview:self.bgBtn];
[self loadLayout];
}
#pragma mark -- loadUI
-(UILabel *)pushTitle
{
if (!_pushTitle) {
_pushTitle = [[UILabel alloc]init];
_pushTitle.font = SYSTEMSIZE(34);
_pushTitle.textColor = [UIColor blackColor];
}
return _pushTitle;
}
-(UILabel *)pushTimeLabel
{
if (!_pushTimeLabel) {
_pushTimeLabel = [[UILabel alloc]init];
_pushTimeLabel.font = SYSTEMSIZE(24);
_pushTimeLabel.textColor = RGB(178, 178, 178);
}
return _pushTimeLabel;
}
-(UILabel *)pushContent
{
if (!_pushContent) {
_pushContent = [[UILabel alloc]init];
_pushContent.font = SYSTEMSIZE(28);
_pushContent.textColor = RGB(178, 178, 178);
_pushContent.numberOfLines = 0;
}
return _pushContent;
}
-(UIImageView *)pushTypeImg
{
if (!_pushTypeImg) {
_pushTypeImg = [[UIImageView alloc]init];
[_pushTypeImg setImage:IMAGEBYENAME(@"enter_logo")];
}
return _pushTypeImg;
}
-(UIButton *)deleteBtn{
if (!_deleteBtn) {
_deleteBtn = InitObject(UIButton);
_deleteBtn.contentMode = UIViewContentModeCenter;
[_deleteBtn setImage:IMAGEBYENAME(@"message_delete") forState:UIControlStateNormal];
[_deleteBtn setImage:IMAGEBYENAME(@"message_delete_sel") forState:UIControlStateSelected];
_deleteBtn.hidden = YES;
}
return _deleteBtn;
}
-(UIButton *)bgBtn{
if (!_bgBtn) {
_bgBtn = InitObject(UIButton);
[_bgBtn addTarget:self action:@selector(deleteBtnClick:) forControlEvents:UIControlEventTouchUpInside];
_bgBtn.hidden = YES;
}
return _bgBtn;
}
-(void)loadLayout{
[self.pushTypeImg mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(kSizeFrom750(15));
make.centerY.mas_equalTo(self.contentView);
make.width.height.mas_equalTo(kSizeFrom750(105));
}];
[self.pushTitle mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(kSizeFrom750(16));
make.height.mas_equalTo(kSizeFrom750(44));
make.left.mas_equalTo(kSizeFrom750(144));
}];
[self.pushContent mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.pushTitle);
make.right.mas_equalTo(-kSizeFrom750(30));
make.top.mas_equalTo(self.pushTitle.mas_bottom).offset(kSizeFrom750(10));
}];
[self.pushTimeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(-kSizeFrom750(20));
make.centerY.mas_equalTo(self.pushTitle);
make.height.mas_equalTo(kSizeFrom750(30));
}];
[self.deleteBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(-kSizeFrom750(20));
make.bottom.mas_equalTo(-kSizeFrom750(20));
make.width.height.mas_equalTo(kSizeFrom750(40));
}];
[self.bgBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(0);
make.bottom.mas_equalTo(0);
make.width.height.mas_equalTo(kSizeFrom750(100));
}];
}
-(void)deleteBtnClick:(UIButton *)sender{
sender.selected = !sender.selected;
self.deleteBtn.selected = !self.deleteBtn.selected;
if (self.deleteBlock) {
self.deleteBlock(self.messageId, sender.selected);
}
}
-(void)loadInfoWithModel:(PushmessageModel *)model isShowDelete:(BOOL)isShowDelte isDeleteAll:(BOOL)isDeleteAll{
self.messageId = model.pushId;
self.pushTitle.text = model.pushTitle;
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:model.pushContext];
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
[paragraphStyle setLineSpacing:kSizeFrom750(8)];
[attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [model.pushContext length])];
self.pushContent.attributedText = attributedString;
self.pushTimeLabel.text = [self showTimeText:model.createTime];
if (isDeleteAll) {
self.deleteBtn.hidden = NO;
self.bgBtn.hidden = NO;
self.deleteBtn.selected = YES;
self.bgBtn.selected = YES;
}else
{
self.bgBtn.selected = NO;
self.deleteBtn.selected = NO;
self.deleteBtn.hidden = !isShowDelte;
self.bgBtn.hidden = !isShowDelte;
}
//图片
if ([model.pushType isEqualToString:@"wendu_warn"]) {
self.pushTypeImg.image = [UIImage imageNamed:@"ic_jpush_wendu"];
}else if ([model.pushType isEqualToString:@"remove_device"]){
self.pushTypeImg.image = [UIImage imageNamed:@"ic_jpush_msg"];
}else if ([model.pushType isEqualToString:@"qu_reply"]){
self.pushTypeImg.image = [UIImage imageNamed:@"ic_imchat_msg"];
}else if ([model.pushType isEqualToString:@"remind_water"]){
self.pushTypeImg.image = [UIImage imageNamed:@"ic_jpush_changewater"];
}else if ([model.pushType isEqualToString:@"offline_push"]){
self.pushTypeImg.image = [UIImage imageNamed:@"ic_jpush_offline"];
}else if ([model.pushType isEqualToString:@"all_push"]){
self.pushTypeImg.image = [UIImage imageNamed:@"ic_jpush_all_push"];
}else if ([model.pushType isEqualToString:@"review_push"]){
self.pushTypeImg.image = [UIImage imageNamed:@"ic_imchat_msg"];
}else if ([model.pushType isEqualToString:@"send_report"]){
self.pushTypeImg.image = [UIImage imageNamed:@"ic_jpush_all_push"];
}
}
-(NSString *)showTimeText:(NSString *)dateTime
{
if (dateTime==nil||dateTime.length<15) {
return @"";
}
NSString *timeText = @"";
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDate *currentDate = [NSDate date];
NSDateComponents *components = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:currentDate];
NSDate *zeroDate = [calendar dateFromComponents:components];//今天0点
NSDateFormatter *formate = [[NSDateFormatter alloc]init];
//格式必须和服务端返回的格式一样,才能转化为date
[formate setDateFormat:@"yyyy-MM-dd HH:mm"];
NSDate *compareDate = [formate dateFromString:dateTime];
NSTimeInterval delta = [zeroDate timeIntervalSinceDate:compareDate];//时间和今天0点比较
if (delta>0) {//今天以前的通知
if (delta<DAY) {//昨天
timeText = [@"昨天 " stringByAppendingString:[dateTime substringWithRange:NSMakeRange(11, 5)]];
}else{//昨天之前
timeText = [dateTime substringToIndex:10];
}
}else{
//今天的通知,
NSString *hour = [dateTime substringWithRange:NSMakeRange(11, 2)];
if ([hour integerValue]>12) {
timeText = [@"下午 " stringByAppendingString:[dateTime substringWithRange:NSMakeRange(11, 5)]];
}else{
timeText = [@"上午 " stringByAppendingString:[dateTime substringWithRange:NSMakeRange(11, 5)]];
}
}
return timeText;
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end