Commit d0838c4bbb4624896d49132ef5ab8bf5fa5b9c15
1 parent
5671f85d
no message
Showing
7 changed files
with
109 additions
and
8 deletions
CNLiveCollectionModule/Classes/Controller/CNLiveCollectionController.m
| ... | ... | @@ -23,8 +23,9 @@ |
| 23 | 23 | #import "CNLiveCollectionCell.h" |
| 24 | 24 | #import "CNLiveCollectionModel.h" |
| 25 | 25 | |
| 26 | +#import "CNLiveCollectionRequest.h" | |
| 26 | 27 | |
| 27 | -@interface CNLiveCollectionController ()<UITableViewDelegate, UITableViewDataSource,CNLiveCollectionNavigationBarDelegate> | |
| 28 | +@interface CNLiveCollectionController ()<UITableViewDelegate, UITableViewDataSource,CNLiveCollectionNavigationBarDelegate,CNLiveCollectionCellDelegate> | |
| 28 | 29 | @property (nonatomic, strong) CNLiveCollectionNavigationBar *navigationBar; |
| 29 | 30 | @property (nonatomic, strong) UITableView *tableView; |
| 30 | 31 | @property (nonatomic, strong) NSMutableArray *data; |
| ... | ... | @@ -35,6 +36,8 @@ |
| 35 | 36 | @end |
| 36 | 37 | |
| 37 | 38 | @implementation CNLiveCollectionController |
| 39 | +static const CGFloat timeValue = 1.5; | |
| 40 | + | |
| 38 | 41 | #pragma mark - 数据 |
| 39 | 42 | - (void)loadData{ |
| 40 | 43 | NSDictionary *params = @{ |
| ... | ... | @@ -153,6 +156,7 @@ |
| 153 | 156 | cell.selectionStyle = UITableViewCellSelectionStyleNone; |
| 154 | 157 | CNLiveCollectionModel *model = self.data[indexPath.row]; |
| 155 | 158 | cell.model = model; |
| 159 | + cell.delegate = self; | |
| 156 | 160 | return cell; |
| 157 | 161 | } |
| 158 | 162 | |
| ... | ... | @@ -160,6 +164,31 @@ |
| 160 | 164 | |
| 161 | 165 | } |
| 162 | 166 | |
| 167 | +#pragma mark - CNLiveCollectionCellDelegate | |
| 168 | +- (void)cancelCollection:(CNLiveCollectionCell *)cell{ | |
| 169 | + [QMUITips showLoadingInView:self.view]; | |
| 170 | + __weak typeof(self) weakSelf = self; | |
| 171 | + [CNLiveCollectionRequest cancelCollection:cell.model.collectionId block:^(BOOL isSuccess, NSError * _Nonnull error) { | |
| 172 | + [QMUITips hideAllToastInView:weakSelf.view animated:YES]; | |
| 173 | + if (error) { | |
| 174 | + [QMUITips showError:error.localizedDescription inView:weakSelf.view hideAfterDelay:timeValue]; | |
| 175 | + return; | |
| 176 | + } | |
| 177 | + if (isSuccess) { | |
| 178 | + [weakSelf.data removeObject:cell.model]; | |
| 179 | + [weakSelf.tableView reloadData]; | |
| 180 | + [QMUITips showSucceed:@"取消收藏成功" inView:weakSelf.view hideAfterDelay:timeValue]; | |
| 181 | + if (weakSelf.data.count == 0) { | |
| 182 | + [weakSelf showEmptyViewWithImage:[UIImage imageNamed:@"zhuangtai_kong"] text:@"您现在没有相关内容哦" detailText:@"" buttonTitle:@"" buttonAction:nil]; | |
| 183 | + [weakSelf setCNNoDataEmptyView]; | |
| 184 | + weakSelf.tableView.tableFooterView = nil; | |
| 185 | + } | |
| 186 | + weakSelf.tableView.mj_footer.hidden = weakSelf.data.count == 0; | |
| 187 | + } | |
| 188 | + }]; | |
| 189 | +} | |
| 190 | + | |
| 191 | +#pragma mark - CNLiveCollectionNavigationBarDelegate | |
| 163 | 192 | - (void)navigationBar:(CNLiveCollectionNavigationBar *)navigationBar actionEvents:(NSString *)actionEvents{ |
| 164 | 193 | if ([actionEvents isEqualToString:@"1"]) { |
| 165 | 194 | [self goBack]; | ... | ... |
CNLiveCollectionModule/Classes/Model/CNLiveCollectionModel.h
CNLiveCollectionModule/Classes/Model/CNLiveCollectionModel.m
CNLiveCollectionModule/Classes/Model/CNLiveCollectionRequest.h
0 → 100644
| 1 | +// | |
| 2 | +// CNLiveCollectionRequest.h | |
| 3 | +// CNLiveCollectionModule | |
| 4 | +// | |
| 5 | +// Created by 153993236@qq.com on 11/12/2019. | |
| 6 | +// Copyright © 2019 153993236@qq.com. All rights reserved. | |
| 7 | +// | |
| 8 | + | |
| 9 | +#import <Foundation/Foundation.h> | |
| 10 | + | |
| 11 | +NS_ASSUME_NONNULL_BEGIN | |
| 12 | +typedef void(^Block)(BOOL isSuccess, NSError *error); | |
| 13 | + | |
| 14 | +@interface CNLiveCollectionRequest : NSObject | |
| 15 | + | |
| 16 | ++ (void)cancelCollection:(NSString *)ID block:(Block)block; | |
| 17 | + | |
| 18 | +@end | |
| 19 | + | |
| 20 | +NS_ASSUME_NONNULL_END | ... | ... |
CNLiveCollectionModule/Classes/Model/CNLiveCollectionRequest.m
0 → 100644
| 1 | +// | |
| 2 | +// CNLiveCollectionRequest.m | |
| 3 | +// CNLiveCollectionModule | |
| 4 | +// | |
| 5 | +// Created by 153993236@qq.com on 11/12/2019. | |
| 6 | +// Copyright © 2019 153993236@qq.com. All rights reserved. | |
| 7 | +// | |
| 8 | + | |
| 9 | +#import "CNLiveCollectionRequest.h" | |
| 10 | +#import "CNLiveCategory.h" | |
| 11 | +#import "CNLiveNetworking.h" | |
| 12 | +#import "CNLiveEnvironment.h" | |
| 13 | +#import "CNUserInfoManager.h" | |
| 14 | + | |
| 15 | +@implementation CNLiveCollectionRequest | |
| 16 | + | |
| 17 | ++ (void)cancelCollection:(NSString *)ID block:(Block)block{ | |
| 18 | + NSDictionary *params = @{@"appId":AppId, | |
| 19 | + @"plat":@"i", | |
| 20 | + @"sid":CNUserShareModel.uid, | |
| 21 | + @"collectionId":ID | |
| 22 | + }; | |
| 23 | + [CNLiveNetworking setAllowRequestDefaultArgument:YES]; | |
| 24 | + [CNLiveNetworking requestNetworkWithMethod:CNLiveRequestMethodGET URLString:CNDarenSubsDeleteCollectionUrl Param:params CacheType:CNLiveNetworkCacheTypeNetworkOnly CompletionBlock:^(NSURLSessionTask *requestTask, id responseObject, NSError *error) { | |
| 25 | + if (responseObject && [responseObject isKindOfClass:[NSDictionary class]]) { | |
| 26 | + NSString *errorCode = [NSString stringWithFormat:@"%@", responseObject[@"errorCode"]]; | |
| 27 | + if ([errorCode isEqualToString:@"0"]) { | |
| 28 | + NSArray *array = [ID componentsSeparatedByString:@":h5:"];//将字符串整体作为分割条件 返回值为NSArray不可变数组 | |
| 29 | + if(array.count == 2){ | |
| 30 | + NSDictionary *dic = @{ | |
| 31 | + @"contentId":array[1]?array[1]:@"", | |
| 32 | + @"selected":@"false", | |
| 33 | + @"model":@"3_witness" | |
| 34 | + }; | |
| 35 | + [[NSNotificationCenter defaultCenter] postNotificationName:@"WjjWitnessCollectStatusNotification" object:nil userInfo:dic]; | |
| 36 | + } | |
| 37 | + } | |
| 38 | + block([errorCode isEqualToString:@"0"], error); | |
| 39 | + } | |
| 40 | + | |
| 41 | + }]; | |
| 42 | +} | |
| 43 | + | |
| 44 | + | |
| 45 | +@end | |
| 46 | + | ... | ... |
CNLiveCollectionModule/Classes/View/CNLiveCollectionCell.h
| ... | ... | @@ -14,7 +14,7 @@ NS_ASSUME_NONNULL_BEGIN |
| 14 | 14 | @class CNLiveCollectionCell; |
| 15 | 15 | |
| 16 | 16 | @protocol CNLiveCollectionCellDelegate <NSObject> |
| 17 | -- (void)clickedCellButton:(CNLiveCollectionCell *)cell type:(NSString *)type; | |
| 17 | +- (void)cancelCollection:(CNLiveCollectionCell *)cell; | |
| 18 | 18 | |
| 19 | 19 | @end |
| 20 | 20 | @interface CNLiveCollectionCell : UITableViewCell | ... | ... |
CNLiveCollectionModule/Classes/View/CNLiveCollectionCell.m
| ... | ... | @@ -116,6 +116,7 @@ static const NSInteger margin = 10; |
| 116 | 116 | - (void)playerDidClicked:(UIButton *)btn{ |
| 117 | 117 | |
| 118 | 118 | } |
| 119 | + | |
| 119 | 120 | #pragma mark - 长按手势 |
| 120 | 121 | - (void)longPressToDo:(UILongPressGestureRecognizer *)gesture { |
| 121 | 122 | //直接return掉,不在开始的状态里面添加任何操作,则长按手势就会被少调用一次了 |
| ... | ... | @@ -126,12 +127,9 @@ static const NSInteger margin = 10; |
| 126 | 127 | QMUIAlertAction *action = [QMUIAlertAction actionWithTitle:@"取消收藏" style:QMUIAlertActionStyleDefault handler:^(__kindof QMUIAlertController *aAlertController, QMUIAlertAction *action) { |
| 127 | 128 | __strong typeof(weakSelf) strongSelf = weakSelf; |
| 128 | 129 | if(!strongSelf) return ; |
| 129 | - | |
| 130 | + [strongSelf cancelCollection]; | |
| 130 | 131 | }]; |
| 131 | 132 | QMUIAlertAction *cancel = [QMUIAlertAction actionWithTitle:@"取消" style:QMUIAlertActionStyleCancel handler:^(__kindof QMUIAlertController *aAlertController, QMUIAlertAction *action) { |
| 132 | - __strong typeof(weakSelf) strongSelf = weakSelf; | |
| 133 | - if(!strongSelf) return ; | |
| 134 | - | |
| 135 | 133 | }]; |
| 136 | 134 | |
| 137 | 135 | QMUIAlertController *alertController = [QMUIAlertController alertControllerWithTitle:@"" message:@"" preferredStyle:QMUIAlertControllerStyleActionSheet]; |
| ... | ... | @@ -151,6 +149,14 @@ static const NSInteger margin = 10; |
| 151 | 149 | [alertController showWithAnimated:YES]; |
| 152 | 150 | } |
| 153 | 151 | |
| 152 | +#pragma mark - 取消收藏方法 | |
| 153 | +- (void)cancelCollection{ | |
| 154 | + if (self.delegate && [self.delegate respondsToSelector:@selector(cancelCollection:)]) { | |
| 155 | + [self.delegate cancelCollection:self];//滑动响应实现 | |
| 156 | + } | |
| 157 | +} | |
| 158 | + | |
| 159 | + | |
| 154 | 160 | #pragma mark - 懒加载 |
| 155 | 161 | - (UIView *)bgView { |
| 156 | 162 | if (!_bgView) { | ... | ... |