首页 > 代码库 > 将一种cell当做几种cell使用

将一种cell当做几种cell使用

将一种cell当做几种cell使用

将一种cell当做几种cell用是有着一些意义的,比如,有时候,不同的cell之间差异很小,如果再派生一个cell出来,就会显得很麻烦,这时候,将这个cell当做几个cell用才有市场的说:)

效果:

源码:

ModelCell.h 与 ModelCell.m

////  ModelCell.h//  Cells////  Copyright (c) 2014年 Y.X. All rights reserved.//#import <UIKit/UIKit.h>@interface ModelCell : UITableViewCell@property (nonatomic, assign) BOOL  show1;@property (nonatomic, assign) BOOL  show2;@property (nonatomic, assign) BOOL  show3;@end

RootViewController.m

////  RootViewController.m//  Cells////  Copyright (c) 2014年 Y.X. All rights reserved.//#import "RootViewController.h"#import "ModelCell.h"@interface RootViewController ()<UITableViewDataSource, UITableViewDelegate>@property (nonatomic, strong) UITableView  *tableView;@property (nonatomic, strong) NSArray      *dataSource;@end@implementation RootViewController- (void)viewDidLoad{    [super viewDidLoad];        // tableView    _tableView = [[UITableView alloc] initWithFrame:self.view.bounds                                              style:UITableViewStylePlain];    _tableView.dataSource     = self;    _tableView.delegate       = self;    _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;    [self.view addSubview:_tableView];}#pragma mark - UITableView‘s dataSource & delegate- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{    return 100;}- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{    static NSString *reusedFlag = @"YouXianMing";    ModelCell *cell = [tableView dequeueReusableCellWithIdentifier:reusedFlag];    if (cell == nil) {        cell = [[ModelCell alloc] initWithStyle:UITableViewCellStyleDefault                                reuseIdentifier:reusedFlag];    }        cell.show1 = YES;    cell.show2 = YES;    cell.show3 = YES;        return cell;}- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{    return 100.f;}@end

核心的地方:

根据属性的setter方法动态隐藏cell中的某些控件

然后在配置cell的时候动态设定要显示的控件

just so easy :)