热更新demo

HotCommentCell.m 10KB

    // // HotCommentCell.m // ThePaperBase // // Created by zhousan on 15/8/26. // Copyright (c) 2015年 scar1900. All rights reserved. // #import "HotCommentCell.h" #import "SDWebImageManager.h" #import "UIImage+wiRoundedRectImage.h" @implementation HotCommentCell @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; 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); 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(self.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(250); 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.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 { self.anserNameLabel.font = appFont(10, NO); CGFloat nameWidth = returnTextWidthWithRTLabel(self.anserNameLabel.text, 12, appFont(10, 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); }]; /** * bug:5063(热赞榜中的热评论列表,用户名过长则会与点赞按钮重叠) */ 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; 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); backHeight = labeHeight > getLineHeightWithCountAndFontWidth(2, 10, TEXT_FOUR_LEVELSIZE)?getLineHeightWithCountAndFontWidth(2, 10, TEXT_FOUR_LEVELSIZE):labeHeight; backHeight += 30; }else { CGFloat labeHeight = returnTextHeightWithRTLabel(self.quoContentLabel.text, rect_screen.size.width-20-20-16, appFont(13, NO), 5); backHeight = labeHeight + 30; } [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.quoContentLabel makeConstraints:^(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); }]; } - (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