1.
#import <UIKit/UIKit.h>
#import "MyAttentionArticleModel.h"
typedef void(^cancleAttentionButtonBlock)(NSIndexPath * indexPath);
@interface ArticleAttentionTableView : UITableView
@property(nonatomic,strong) NSMutableArray<MyAttentionArticleModel*> * dataArray;
@property(nonatomic,copy) cancleAttentionButtonBlock cancelBlock;
- (void)cancelPayAttentionButtonDidClick:(cancleAttentionButtonBlock)block;
@end
2.
#import "ArticleAttentionTableView.h"
#import "MyAttentionArticleCell.h"
#import "ProductRecommendDetailController.h"
#import "UIView+UIViewController.h"
#import "UIViewExt.h"
@interface ArticleAttentionTableView ()<UITableViewDataSource,UITableViewDelegate>
@end
@implementation ArticleAttentionTableView
-(instancetype)initWithFrame:(CGRect)frame style:(UITableViewStyle)style
{
self = [super initWithFrame:frame style:style];
if (self) {
self.delegate = self;
self.dataSource = self;
self.separatorStyle = UITableViewCellSeparatorStyleNone;
self.backgroundColor = [UIColor clearColor];
UIView * headerView = [[UIView alloc] init];
headerView.height=8;
headerView.backgroundColor=DefaultColor;
self.tableHeaderView=headerView;
}
return self;
}
-(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 100;
}
#pragma 数据源方法
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return self.dataArray.count;
}
-(UITableViewCell*) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString * reuseID = @"zqnbcell";
MyAttentionArticleCell * cell = [tableView dequeueReusableCellWithIdentifier:reuseID ];
if (cell==nil) {
cell = [[MyAttentionArticleCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:reuseID];
}
MyAttentionArticleModel * model = self.dataArray[indexPath.row];
cell.articleModel = model;
return cell;
}
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
ProductRecommendDetailController * product = [[ProductRecommendDetailController alloc] init];
MyAttentionArticleModel * mymodel = self.dataArray[indexPath.row];
product.goodsArticleModel = mymodel.goodsArticleDisplayDto;
product.isMore = YES;
[self.viewController.navigationController pushViewController:product animated:YES];
}
- (void)setDataArray:(NSMutableArray<MyAttentionArticleModel *> *)dataArray{
_dataArray = dataArray;
[self reloadData];
}
//先要设Cell可编辑
-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
return YES;
}
- (NSArray<UITableViewRowAction *> *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath{
WEAKSELF;
UITableViewRowAction *editAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"取消\n关注" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {
NSLog(@"点击了取消关注");
if (weakSelf.cancelBlock) {
weakSelf.cancelBlock(indexPath);
}
}];
editAction.backgroundColor = NavThemeColor1;
return @[editAction];
}
- (void)cancelPayAttentionButtonDidClick:(cancleAttentionButtonBlock)block{
_cancelBlock = block;
}
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{
editingStyle = UITableViewCellEditingStyleDelete;
}
@end
3.使用
ArticleAttentionTableView * secondView = [[ArticleAttentionTableView alloc]initWithFrame:CGRectMake(KScreenWidth, 0, scrollView.width, scrollView.height)];
_articleView = secondView;
secondView.backgroundColor = DefaultColor;
[scrollView addSubview:secondView];
4. static NSString * const reuseIdentifier = @"EmergencyTableViewCell";