// // commentSubAnwserCell.m // ThePaperBase // // Created by zhousan on 15/8/3. // Copyright (c) 2015年 scar1900. All rights reserved. // #import "commentSubAnwserCell.h" #import "SDWebImageManager.h" #import "UIImage+wiRoundedRectImage.h" @interface commentSubAnwserCell () @end @implementation commentSubAnwserCell @synthesize commentBO; - (void)setCommentBO:(commentObjectVO *)data { commentBO = data; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ userBO *user = setJsonDicToDataModel(data.userInfo, [userBO class]); NSString *nameStr = user.sname?[NSString stringWithFormat:@"%@:",user.sname]:@""; NSString *praiseNum = data.praiseTimes; dispatch_async(dispatch_get_main_queue(), ^{ if (isBlankString(user.pic)) { self.answerIcon.image = Image(@"login/loginIcon_s.png"); }else { if ([[TPUserDefault instance].readModeStr intValue] == imageMode) { [self updateUserHeadImage:user]; }else if ([[TPUserDefault instance].readModeStr intValue] == textMode) { self.answerIcon.image = Image(@"login/loginIcon_s.png"); }else { if ([Remote IsEnableWIFI]) { [self updateUserHeadImage:user]; }else { self.answerIcon.image = Image(@"login/loginIcon_s.png"); } } } if ([user.isAuth integerValue] ==1) {//认证用户提问或回答,头像不显示加”V“(bug:4116) self.verifyTag.hidden = NO; }else{ self.verifyTag.hidden = YES; } self.anserNameLabel.text = nameStr; self.aswerContentLabel.text = data.content; self.timeLabel.text = data.pubTime; if (!isBlankString(praiseNum)) { self.OkButton.text = praiseNum; } if (data.isPraised && [data.isPraised intValue] == 1) { [self.OkButton setSelected:YES]; }else { [self.OkButton setSelected:NO]; } [self reLayoutSubViews]; }); }); // self.anserNameLabel.text = data.userName?[NSString stringWithFormat:@"%@:",data.userName]:@""; self.aswerContentLabel.text = data?data.content:@""; self.OkButton.text = data.praiseTimes; if (data.quoteInfo && data.quoteInfo.allKeys.count>0) { NSDictionary *dic = data.quoteInfo; commentObjectVO *quoBO = setJsonDicToDataModel(dic, [commentObjectVO class]); self.commentBack.hidden = NO; self.quoNameLable.hidden = NO; self.quoNameLable.text =[NSString stringWithFormat:@"%@:",quoBO.userName]; self.quoContentLabel.hidden = NO; self.triangleImg.hidden = NO; self.quoContentLabel.text = quoBO.content; self.quoContentHeight = returnTextHeightWithRTLabel(quoBO.content, rect_screen.size.width-20-20-16, appFont(13, NO), 5); if (self.quoContentHeight <= getLineHeightWithCountAndFontWidth(2, 10, TEXT_FOUR_LEVELSIZE)) { self.commentBack.userInteractionEnabled = NO; }else { self.commentBack.userInteractionEnabled = YES; } if (!data.isQuoExpand || [data.isQuoExpand intValue] == 0) { if (self.quoContentHeight > getLineHeightWithCountAndFontWidth(2, 10, TEXT_FOUR_LEVELSIZE)) { self.diandiandianLabel.hidden = NO; }else { self.diandiandianLabel.hidden = YES; } self.quoContentHeight = self.quoContentHeight>getLineHeightWithCountAndFontWidth(2, 10, TEXT_FOUR_LEVELSIZE)?getLineHeightWithCountAndFontWidth(2, 10, TEXT_FOUR_LEVELSIZE):self.quoContentHeight; } }else { self.triangleImg.hidden = YES; self.commentBack.hidden = YES; self.quoNameLable.hidden = YES; self.quoContentLabel.hidden = YES; } [self reLayoutSubViews]; } - (void)updateUserHeadImage:(userBO*)user{ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ SDWebImageManager *imageManager = [SDWebImageManager sharedManager]; [imageManager downloadImageWithURL:[NSURL URLWithString:user.pic] options:SDWebImageLowPriority progress:^(NSInteger receivedSize, NSInteger expectedSize) { } completed:^(UIImage *img, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) { // UIImage *roundImage = [UIImage circleImage:img withParam:28]; dispatch_async(dispatch_get_main_queue(), ^{ self.answerIcon.image = img; }); }]; }); } - (void)subLayoutSubViews { __weak typeof(self) weakSelf = self; [self.backView makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(weakSelf.left).offset(10); make.top.equalTo(weakSelf.top).offset(10); make.width.equalTo(weakSelf.width).offset(-20); make.bottom.equalTo(weakSelf.bottom); }]; [self.answerIcon makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(weakSelf.backView).offset(10); make.top.equalTo(weakSelf.backView).offset(7); make.width.mas_equalTo(28); make.height.mas_equalTo(28); }]; [self.iconBack makeConstraints:^(MASConstraintMaker *make) { make.edges.equalTo(self.answerIcon); }]; [self.iconButton makeConstraints:^(MASConstraintMaker *make) { make.edges.equalTo(self.answerIcon); }]; [self.verifyTag makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(weakSelf.backView.left).offset(28); make.top.equalTo(weakSelf.backView.top).offset(28); make.height.mas_equalTo(12); make.width.mas_equalTo(12); }]; [self.anserNameLabel makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(weakSelf.backView.top).offset(9); make.left.equalTo(weakSelf.answerIcon.right).offset(10); make.width.mas_equalTo(rect_screen.size.width/2); make.height.mas_equalTo(12); }]; [self.timeImg makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(weakSelf.answerIcon.right).offset(10); make.top.equalTo(weakSelf.anserNameLabel.bottom).offset(6); make.height.mas_equalTo(10); make.width.mas_equalTo(10); }]; [self.timeLabel makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(weakSelf.timeImg.right).offset(5); make.top.equalTo(weakSelf.anserNameLabel.bottom).offset(6); make.height.mas_equalTo(9); make.width.mas_equalTo(rect_screen.size.width/2); }]; [self.OkButton makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(weakSelf.backView.right).offset(-40); make.top.equalTo(weakSelf.anserNameLabel.top).offset(-2); make.width.mas_equalTo(30); make.height.mas_equalTo(35); }]; [self.hostLabel makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(weakSelf.anserNameLabel.right).offset(5); make.top.equalTo(weakSelf.anserNameLabel.top); make.width.mas_equalTo(27); make.height.mas_equalTo(12); }]; [self.aswerContentLabel makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(weakSelf.backView.left).offset(10); make.right.equalTo(weakSelf.backView.right).offset(-10); make.top.equalTo(weakSelf.timeLabel.bottom).offset(10); make.height.mas_equalTo(0); }]; [self.menuButton makeConstraints:^(MASConstraintMaker *make) { make.edges.equalTo(weakSelf.aswerContentLabel); }]; [self.commentBack makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(weakSelf.aswerContentLabel.left); make.top.equalTo(weakSelf.aswerContentLabel.bottom).offset(8); make.width.equalTo(weakSelf.aswerContentLabel.width); make.height.equalTo(@100); }]; self.expandBtn.hidden = YES; [self.backView addSubview:self.triangleImg]; [self.triangleImg makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self.commentBack.left).offset(55/2); make.width.equalTo(@7); make.top.equalTo(self.commentBack.top).offset(-6); make.height.equalTo(@7); }]; [self.lineView makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(weakSelf.backView.left); make.right.equalTo(weakSelf.backView.right); make.top.equalTo(weakSelf.backView.bottom).offset(-1); make.height.mas_equalTo(1); }]; [self.quoNameLable makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(weakSelf.commentBack.left).offset(10); make.top.equalTo(weakSelf.commentBack.top).offset(10); make.right.mas_equalTo(weakSelf.commentBack.right).offset(-15); make.height.mas_equalTo(25/2); }]; } - (void)reLayoutSubViews { CGFloat nameWidth = returnTextWidthWithRTLabel(self.anserNameLabel.text, 12, appFont(11, NO), 0); __weak typeof(self) weakSelf = self; [self.anserNameLabel remakeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(weakSelf.backView.top).offset(9); make.left.equalTo(weakSelf.answerIcon.right).offset(10); make.width.mas_equalTo(nameWidth+40); make.height.mas_equalTo(12); }]; CGFloat answerContentHeight = returnTextHeightWithRTLabel(self.aswerContentLabel.text, rect_screen.size.width-20-20, appFont(13, NO), 7); [self.aswerContentLabel remakeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(weakSelf.backView.left).offset(10); make.right.equalTo(weakSelf.backView.right).offset(-10); make.top.equalTo(weakSelf.timeLabel.bottom).offset(10); make.height.mas_equalTo(answerContentHeight); }]; CGFloat backHeight = 0; CGFloat tmp = 0; if (!self.commentBO.isQuoExpand || [self.commentBO.isQuoExpand intValue] == 0) { CGFloat labeHeight = returnTextHeightWithRTLabel(self.quoContentLabel.text, rect_screen.size.width-20-20-16, appFont(13, NO), 5); if (labeHeight > getLineHeightWithCountAndFontWidth(2, 10, TEXT_FOUR_LEVELSIZE)) { tmp = 15; } backHeight = labeHeight > getLineHeightWithCountAndFontWidth(2, 10, TEXT_FOUR_LEVELSIZE)?(getLineHeightWithCountAndFontWidth(2, 10, TEXT_FOUR_LEVELSIZE)+tmp):labeHeight; backHeight += 35; }else { tmp = 0; CGFloat labeHeight = returnTextHeightWithRTLabel(self.quoContentLabel.text, rect_screen.size.width-20-20-16, appFont(13, NO), 5); backHeight = labeHeight + 35; self.diandiandianLabel.hidden = YES; } [self.commentBack remakeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(weakSelf.aswerContentLabel.left); make.top.equalTo(weakSelf.aswerContentLabel.bottom).offset(8); make.width.equalTo(weakSelf.aswerContentLabel.width); make.height.mas_equalTo(backHeight); }]; [self.diandiandianLabel makeConstraints:^(MASConstraintMaker *make) { make.bottom.equalTo(self.commentBack).offset(-5); make.centerX.equalTo(self.backView); make.size.mas_equalTo(CGSizeMake(100, 15)); }]; [self.quoContentLabel remakeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(weakSelf.commentBack.left).offset(8); make.top.equalTo(weakSelf.quoNameLable.bottom).offset(5); make.right.equalTo(weakSelf.commentBack.right).offset(-8); make.bottom.equalTo(weakSelf.commentBack.bottom).offset(-3-tmp); }]; } - (void)commentBack:(id)sender { // UIMenuController *menu = [UIMenuController sharedMenuController]; // if (menu.menuVisible) { // [menu setMenuVisible:NO animated:YES]; // } if ([self.delegate respondsToSelector:@selector(gotoCommentWith:)]) { [self.delegate gotoCommentWith:self.commentBO]; }; } - (void)iconButtonClick { if ([self.delegate respondsToSelector:@selector(gotoUserInfo:)]) { [self.delegate gotoUserInfo:self.commentBO]; } } /* // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affects performance during animation. - (void)drawRect:(CGRect)rect { // Drawing code } */ @end