评论与点赞

1.评论,这个功能我觉得是个APP都应该要由,因为它是一种用户对用户的宣泄.


评论这个功能一般是出现在主要浏览界面的二级界面针对一个或者一个内容进行评论.(接口什么的我就不说了,大家肯定懂).评论结束以后在显示评论的tableview上加载显示一下(relodata)

上代码

- (void)SendbuttonClicked
{    
    if ([_SendButton.titleLabel.text isEqualToString:@"发送"]) {
        [self showHudInView:self.view hint:SubmitComment];
        [_upService commentsWithType:_type cuuid:_cuuidString comment:_textView.text withFinish:^(BOOLsuccess, NSString *message) {//(这个是自己封装的网络请求,对评论内容ID,用户ID,评论内容什么的,用自己的接口的网络请求就好)
            [self hideHud];
            if (success) {
                [_textView resignFirstResponder];
                [self showHint:@"评论成功"];
              _textView.text = @"";
              _talkLabel.text = @"";
                [self refreshData];//这个是刷新界面的方法,rolodata数据从加载什么的,就不多说了,都懂的,不懂私聊我
            }else{
                [self.view makeToast:message];
            }
        }];
    } else {
        //回复评论
        [_upService ReturnCommentWithType:_type cuuid:_cuuidString puuid:_puuidString comment:_textView.text withFinish:^(BOOL success, NSString *message) {
            
            [self hideHud];
            if (success) {
                [_textView resignFirstResponder];//回复同样.针对你要回复的那个人得必要数据传给服务器就OK
                [self showHint:@"回复成功"];
              _textView.text = @"";
              _talkLabel.text = @"";
                [self refreshData];
            }else{
                [self.view makeToast:message];
            }
        }];
    }
}
评论很简单哈


接下来说一说点赞:点赞其实也差不多,就是点赞一般是在cell里进行,或者二级界面其实最终达到的都是一样的效果,在cell进行无非就是同样的操作,只是你需要用代理回调一下.还有一个要注意的就是,点赞结束后得根据网络请求回来的数据进行一次匹配判断,也就是说看他的状态去改变点赞图标的状态.不多说看代码

// 点赞 (这个里面用到的多线程,星号量什么的只是为了在点赞之前获取一下评论点赞的状态个数什么的,不必在意)

- (void)praise:(UIButton *)pariseBtn
{
    
    if (!_service)
    {
        _service = [[XONEShareUpLoadservice allocinit];
    }
    UIWindow *delegateWindow = UIApplication.sharedApplication.delegate.window;
    
    dispatch_semaphore_t accountLock = dispatch_semaphore_create(0);
    
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT0), ^{
        
        [_service GetCommentAndPariseWithType:_shareModel.typeString
                                        cuuid:_shareModel.recomString
                                       circle:_shareModel.groupOfCircleId
                                   withFinish:^(BOOL success, NSString *message) {
            if (success)
            {
                dispatch_semaphore_signal(accountLock);
            }
            else
            {
                [delegateWindow makeToast:message];
                dispatch_semaphore_signal(accountLock);
            }
        }];
    });
    
    dispatch_after(0.1,dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT0), ^{
        
        dispatch_semaphore_wait(accountLock,DISPATCH_TIME_FOREVER);
        
        if ([[_service.getcommentsAndPraiseDic objectForKey:@"liked"intValue] == 0)
        {
            
            [_service praisesWithType:_shareModel.typeString
                                cuuid:_shareModel.recomString
                           withFinish:^(BOOL success, NSString *message) {
                if (success)
                {
                    [_service GetCommentAndPariseWithType:_shareModel.typeString
                                                    cuuid:_shareModel.recomString
                                                   circle:_shareModel.groupOfCircleId
                                               withFinish:^(BOOL success, NSString *message) {
                        if (success)
                        {
                            
                            [_delegate circleSharePriaseSuccess:YES];
                            
                            /* 在代理里面执行这些
                             [delegateWindow showHint:@"已点赞"];
                             [self refreshData];
                             */
                            
                            [self priaseBtnIsSelected:YES];
                        }
                        else
                        {
                            [delegateWindow makeToast:message];
                        }
                    }];
                }
                else
                {
                    [delegateWindow makeToast:message];
                }
            }];
        }
        else
        {
            [_service praisesWithType:_shareModel.typeString
                                cuuid:_shareModel.recomString
                           withFinish:^(BOOL success, NSString *message) {
                if (success)
                {
                    [_service GetCommentAndPariseWithType:_shareModel.typeString
                                                    cuuid:_shareModel.recomString
                                                   circle:_shareModel.groupOfCircleId
                                               withFinish:^(BOOL success, NSString *message) {
                        if (success)
                        {
                            [_delegate circleSharePriaseSuccess:NO];
                            /* 在代理里面执行这些
                             [self showHint:@"已取消点赞"];
                             [self refreshData];
                             */
                            [self priaseBtnIsSelected:NO];
                            
                        }
                        else
                        {
                            [delegateWindow makeToast:message];
                        }
                    }];
                }
                else
                {
                    [delegateWindow makeToast:message];
                }
            }];
        }
    });
}

// 点赞按钮 选中/取消选中 = 点赞/取消点赞
- (void)priaseBtnIsSelected:(BOOL)selected
{
    NSUInteger currentLikeCount = [[_service.getcommentsAndPraiseDic objectForKey:@"liked"intValue];
    if (selected) // 点赞
    {
        _sharePraiseBtn.selected = YES;
        [_sharePraiseBtn setImageEdgeInsets:UIEdgeInsetsMake(0, -3000)];
        [_sharePraiseBtn setTitleEdgeInsets:UIEdgeInsetsMake(03000)];
        [_sharePraiseBtn.titleLabel setText:STR_Format(@"%d",currentLikeCount+1)];
    }
    else          // 取消点赞
    {
        _sharePraiseBtn.selected = NO;
        if (currentLikeCount > 0)
        {
            if (currentLikeCount == 1)
            {
                [_sharePraiseBtn setImageEdgeInsets:UIEdgeInsetsMake(0000)];
                [_sharePraiseBtn setTitleEdgeInsets:UIEdgeInsetsMake(0000)];
                [_sharePraiseBtn.titleLabel setText:@""];
            }
            else
            {
                [_sharePraiseBtn.titleLabel setText:STR_Format(@"%d",currentLikeCount-1)];
            }
        }
    }
}

/**
 *  点赞回调 (外部VC的操作,调用代理方法) 其实点赞还有比较偷懒的方法,想知道就私聊我了
 *
 *  @param priaseSuccess priaseSuccess YES :已点赞  NO :取消点赞
 */
- (void)circleSharePriaseSuccess:(BOOL)priaseSuccess
{
    if (priaseSuccess)
    {
        [self showHint:@"已点赞"];
    }
    else
    {
        [self showHint:@"已取消点赞"];
    }
    [self refreshGroupData];
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值