6.26 iOS开发自定义tableView使用

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";

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值