ifish/Ifish/UMCommunity/UMCommunitySDK/UMCommunityUI/simple/FeedDetail/UMComFeedDetailCommentCell.m

188 lines
7.7 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.

//
// UMComFeedDetailCommentCell.m
// UMCommunity
//
// Created by umeng on 16/5/18.
// Copyright © 2016年 Umeng. All rights reserved.
//
#import "UMComFeedDetailCommentCell.h"
#import <UMComDataStorage/UMComComment.h>
#import "UMComLabel.h"
#import <UMComDataStorage/UMComUser.h>
#import <UMComDataStorage/UMComImageUrl.h>
#import "UMComResouceDefines.h"
#import "UMComAvatarImageView.h"
#import "UMComMutiStyleTextView.h"
#import <UMCommunitySDK/UMComSession.h>
#import <UMComFoundation/UMComKit+Color.h>
@interface UMComFeedDetailCommentCell ()<UIActionSheetDelegate>
@property (nonatomic, strong) UMComAvatarImageView *realAvatar;
@property (nonatomic, strong) UMComComment *comment;
@end
@implementation UMComFeedDetailCommentCell
- (void)awakeFromNib {
self.selectionStyle = UITableViewCellSelectionStyleNone;
// Initialization code
self.realAvatar = [UMComAvatarImageView filletAvatarWithFrame:self.avatorImageView.bounds];
[self.avatorImageView addSubview:_realAvatar];
self.realAvatar.userInteractionEnabled = YES;
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapInAvatar:)];
[self.realAvatar addGestureRecognizer:tap];
self.selectionStyle = UITableViewCellSelectionStyleNone;
self.nameLabel.textColor = UMComColorWithHexString(@"#666666");
self.dateLabel.textColor = UMComColorWithHexString(@"#999999");
}
- (void)reloadCellWithComment:(UMComComment *)comment
{
self.comment = comment;
self.nameLabel.text = comment.creator.name;
self.dateLabel.text = createTimeString(comment.create_time);
self.commentContentView.lineSpace = 3;
NSArray *checkWords = nil;
NSString *contentString = comment.content;
if (comment.reply_comment || comment.reply_user) {
NSString *name = comment.reply_comment.creator.name;
if (!name) {
name = comment.reply_user.name;
}
if ([name isKindOfClass:[NSString class]]) {
contentString = [NSString stringWithFormat:@"回复@%@%@",name, contentString];
name = [NSString stringWithFormat:@"@%@",name];
checkWords = [NSArray arrayWithObject:name];
}
}
UMComMutiText *contentMutiText = [UMComMutiText mutiTextWithSize:CGSizeMake(self.commentContentView.frame.size.width, MAXFLOAT) font:UMComFontNotoSansLightWithSafeSize(14) string:contentString lineSpace:3 checkWords:checkWords textColor:UMComColorWithHexString(@"#999999") highLightColor:UMComColorWithHexString(@"#469ef8")];
self.commentContentConstraint.constant = contentMutiText.textSize.height;
[self.commentContentView setMutiStyleTextViewWithMutiText:contentMutiText];
__weak typeof(self) weakSelf = self;
self.commentContentView.clickOnlinkText = ^(UMComMutiStyleTextView *mutiStyleTextView, UMComMutiTextRun *run){
if ([run isKindOfClass:[UMComMutiTextRunClickUser class]]) {
if (weakSelf.commentActionDelegate && [weakSelf.commentActionDelegate respondsToSelector:@selector(customObj:clickOnCommentUser:)]) {
[weakSelf.commentActionDelegate customObj:weakSelf clickOnCommentUser:comment.reply_comment.creator];
}
}else if ([run isKindOfClass:[UMComMutiTextRunURL class]]){
if (weakSelf.commentActionDelegate && [weakSelf.commentActionDelegate respondsToSelector:@selector(customObj:clickOnURL:)]) {
[weakSelf.commentActionDelegate customObj:weakSelf clickOnURL:run.text];
}
}
};
[self.realAvatar resetAvatarWithUser:comment.creator];
}
- (void)layoutSubviews
{
[super layoutSubviews];
[self.commentContentView setNeedsLayout];
[self.commentContentView layoutIfNeeded];
[self.customBgView setNeedsLayout];
[self.customBgView layoutIfNeeded];
[self.contentView setNeedsLayout];
[self.contentView layoutIfNeeded];
// self.contentLabel.preferredMaxLayoutWidth = CGRectGetWidth(self.contentLabel.frame);
}
#pragma mark - action
- (void)tapInAvatar:(UITapGestureRecognizer *)sender
{
if (self.commentActionDelegate && [self.commentActionDelegate respondsToSelector:@selector(customObj:clickOnCommentUser:)]) {
[self.commentActionDelegate customObj:self clickOnCommentUser:self.comment.creator];
}
}
- (IBAction)clickOnReplyButton:(UIButton*)sender
{
[sender setImage:UMComSimpleImageWithImageName(@"um_comment_highlight") forState:UIControlStateHighlighted];
if (self.commentActionDelegate && [self.commentActionDelegate respondsToSelector:@selector(customObj:clickOnReplyComment:)]) {
[self.commentActionDelegate customObj:self clickOnReplyComment:self.comment];
}
}
- (IBAction)clickOnMoreButton:(id)sender {
NSMutableArray *itemTitles = [NSMutableArray array];
NSString *title = @"";
if ([self checkAuthDeleteComment]) {
title = UMComLocalizedString(@"deleted", @"删除");
[itemTitles addObject:title];
title = UMComLocalizedString(@"copy_comment", @"复制");
[itemTitles addObject:title];
if (![self.comment.creator.uid isEqualToString:[UMComSession sharedInstance].uid]) {
title = UMComLocalizedString(@"spam_user", @"举报用户");
[itemTitles addObject:title];
}
}else{
title = UMComLocalizedString(@"spam_user", @"举报用户");
[itemTitles addObject:title];
title = UMComLocalizedString(@"spam_comment", @"举报内容");
[itemTitles addObject:title];
title = UMComLocalizedString(@"copy_comment", @"复制");
[itemTitles addObject:title];
}
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:nil];
for (NSString *title in itemTitles) {
[actionSheet addButtonWithTitle:title];
}
[actionSheet showInView:self];
}
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSString *title = [actionSheet buttonTitleAtIndex:buttonIndex];
if ([title isEqualToString:UMComLocalizedString(@"deleted", @"删除")]) {
if (self.commentActionDelegate && [self.commentActionDelegate respondsToSelector:@selector(customObj:clickOnDeleteComment:)]) {
[self.commentActionDelegate customObj:self clickOnDeleteComment:self.comment];
}
}else if ([title isEqualToString:UMComLocalizedString(@"spam_user", @"举报用户")]){
if (self.commentActionDelegate && [self.commentActionDelegate respondsToSelector:@selector(customObj:clickOnSpamUser:)]) {
[self.commentActionDelegate customObj:self clickOnSpamUser:self.comment.creator];
}
}else if ([title isEqualToString:UMComLocalizedString(@"spam_comment", @"举报内容")]){
if (self.commentActionDelegate && [self.commentActionDelegate respondsToSelector:@selector(customObj:clickOnSpamComment:)]) {
[self.commentActionDelegate customObj:self clickOnSpamComment:self.comment];
}
}else if ([title isEqualToString:UMComLocalizedString(@"copy_comment", @"复制")]){
if (self.commentActionDelegate && [self.commentActionDelegate respondsToSelector:@selector(customObj:clickOnCopyComment:)]) {
[self.commentActionDelegate customObj:self clickOnCopyComment:self.comment];
}
}
}
- (BOOL)checkAuthDeleteComment
{
BOOL permission = NO;
if ([self.comment.creator.uid isEqualToString:[UMComSession sharedInstance].uid] || (self.comment.permission.integerValue >= 100)) {
permission = YES;
}
return permission;
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end