240 lines
8.1 KiB
Objective-C
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
|