美文网首页
iOS 融云修改RCConversationListViewCo

iOS 融云修改RCConversationListViewCo

作者: 一只帅气的猿 | 来源:发表于2018-05-04 16:29 被阅读640次

    随便做个笔记

    - (void)willDisplayConversationTableCell:(RCConversationBaseCell *)cell atIndexPath:(NSIndexPath *)indexPath {
        
        RCConversationCell *baseCell = (RCConversationCell *)cell;
        RCConversationModel *model = self.conversationListDataSource[indexPath.row];
        RCMessage *ms = (RCMessage *)model.lastestMessage;
        
        if (ms.extra != nil) {
            
            NSData *jsonData = [ms.extra dataUsingEncoding:NSUTF8StringEncoding];
            NSError *err;
            NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&err];
            
            if ([dictionary[@"fromContactid"] integerValue] != 0) {
    
                //cell复用问题
                for (UIView *view in baseCell.contentView.subviews) {
                    if ([view isKindOfClass:UIImageView.class] && view.tag == 120) {
                        [view removeFromSuperview];
                    }
                    if ([view isKindOfClass:UILabel.class] && view.tag == 110) {
                        [view removeFromSuperview];
                    }
                }
                
                UIImageView *view = [[UIImageView alloc] init];
                view.tag = 120;
                [baseCell.contentView addSubview:view];
                view.translatesAutoresizingMaskIntoConstraints = NO;
                NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:baseCell.conversationTitle, @"view1", view,@"view", nil];
                [baseCell addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[view1]-15-[view(==30)]" options:0 metrics:nil views:dic]];
                [baseCell addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-10-[view(==20)]" options:0 metrics:nil   views:NSDictionaryOfVariableBindings(view)]];
                
                UILabel *showLabel = [[UILabel alloc] init];
                showLabel.backgroundColor = [UIColor clearColor];
                showLabel.font = [UIFont systemFontOfSize:12];
                showLabel.tag = 110;
                [baseCell.contentView addSubview:showLabel];
                showLabel.translatesAutoresizingMaskIntoConstraints = NO;
                NSDictionary *showLabelDic = [NSDictionary dictionaryWithObjectsAndKeys:view, @"view1", showLabel,@"view",baseCell.messageCreatedTimeLabel,@"view2", nil];
                [baseCell addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[view1]-0-[view]-0-[view2]" options:0 metrics:nil views:showLabelDic]];
                [baseCell addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-10-[showLabel(==20)]" options:0 metrics:nil   views:NSDictionaryOfVariableBindings(showLabel)]];
            
                if ([dictionary[@"fromContactid"] integerValue] == 1) {
                    
                    showLabel.text = @"她想和你视频";
                    showLabel.textColor = RGBA(142, 74, 255, 1.0);
                    
                    NSMutableArray *ary=[NSMutableArray new];
                    for(int I=1;I<=7;I++){
                        NSString *imageName=[NSString stringWithFormat:@"showGif%d",I];
                        UIImage *image=[UIImage imageNamed:imageName];
                        [ary addObject:image];
                    }
                    view.animationImages=ary;
                    view.animationRepeatCount=0;
                    view.animationDuration=1.0;
                    [view startAnimating];
                }
                
                if ([dictionary[@"fromContactid"] integerValue] == 2) {
                    
                    showLabel.text = @"她距离你较近";
                    showLabel.textColor = [UIColor redColor];
                    
                    NSMutableArray *ary=[NSMutableArray new];
                    for(int I=1;I<=3;I++){
                        NSString *imageName=[NSString stringWithFormat:@"gifImage%d",I];
                        UIImage *image=[UIImage imageNamed:imageName];
                        [ary addObject:image];
                    }
                    view.animationImages=ary;
                    view.animationRepeatCount=0;
                    view.animationDuration=1.0;
                    [view startAnimating];
                }
            
            }
            
            //cell复用问题
            for (UIView *view in baseCell.contentView.subviews) {
                if ([dictionary[@"fromContactid"] integerValue] == 0 && [view isKindOfClass:UIImageView.class] && view.tag == 120) {
                    [view removeFromSuperview];
                }
                if ([dictionary[@"fromContactid"] integerValue] == 0 && [view isKindOfClass:UILabel.class] && view.tag == 110) {
                    [view removeFromSuperview];
                }
            }
            
        } else {
            
            //cell复用问题
            for (UIView *view in baseCell.contentView.subviews) {
                if ([view isKindOfClass:UIImageView.class] && view.tag == 120) {
                    [view removeFromSuperview];
                }
                if ([view isKindOfClass:UILabel.class] && view.tag == 110) {
                    [view removeFromSuperview];
                }
            }
            
        }
        
        [cell layoutIfNeeded];
        
    }
    
    

    相关文章

      网友评论

          本文标题:iOS 融云修改RCConversationListViewCo

          本文链接:https://www.haomeiwen.com/subject/ftodrftx.html