ifish/Ifish/controllers/IfishTabControllers/消息/IfishMessageViewCell.m

240 lines
8.1 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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