[关闭]
@SanMao 2015-08-06T00:34:35.000000Z 字数 3939 阅读 1396

自定义等高的cell

UI

---所有cell的高度都是一样的

纯代码方式

1.frame

  1. @interface XMGTgCell : UITableViewCell
  2. @end
  1. /**
  2. * 在这个方法中添加所有的子控件
  3. */
  4. - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
  5. {
  6. if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
  7. // ......
  8. }
  9. return self;
  10. }
  1. /**
  2. * 在这个方法中计算所有子控件的frame
  3. */
  4. - (void)layoutSubviews
  5. {
  6. [super layoutSubviews];
  7. // ......
  8. }
  1. @class XMGTg;
  2. @interface XMGTgCell : UITableViewCell
  3. /** 团购模型数据 */
  4. @property (nonatomic, strong) XMGTg *tg;
  5. @end
  1. - (void)setTg:(XMGTg *)tg
  2. {
  3. _tg = tg;
  4. // .......
  5. }
  1. [self.tableView registerClass:[XMGTgCell class] forCellReuseIdentifier:ID];
  1. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  2. {
  3. // 访问缓存池
  4. XMGTgCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
  5. // 设置数据(传递模型数据)
  6. cell.tg = self.tgs[indexPath.row];
  7. return cell;
  8. }

2.Autolayout

新建一个继承自UITableViewCell的子类,比如XMGTgCell
  1. @interface XMGTgCell : UITableViewCell
  2. @end
在XMGTgCell.m文件中
  1. /**
  2. * 在这个方法中添加所有的子控件
  3. */
  4. - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
  5. {
  6. if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
  7. // ......
  8. }
  9. return self;
  10. }
在XMGTgCell.h文件中提供一个模型属性,比如XMGTg模型
  1. @class XMGTg;
  2. @interface XMGTgCell : UITableViewCell
  3. /** 团购模型数据 */
  4. @property (nonatomic, strong) XMGTg *tg;
  5. @end
在XMGTgCell.m中重写模型属性的set方法
  1. - (void)setTg:(XMGTg *)tg
  2. {
  3. _tg = tg;
  4. // .......
  5. }
在控制器中
  1. [self.tableView registerClass:[XMGTgCell class] forCellReuseIdentifier:ID];
  1. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  2. {
  3. // 访问缓存池
  4. XMGTgCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
  5. // 设置数据(传递模型数据)
  6. cell.tg = self.tgs[indexPath.row];
  7. return cell;
  8. }

xib方式

新建一个继承自UITableViewCell的子类,比如XMGTgCell
  1. @interface XMGTgCell : UITableViewCell
  2. @end
新建一个xib文件(文件名最好跟类名一致,比如XMGTgCell.xib)

  1. @interface XMGTgCell()
  2. @property (weak, nonatomic) IBOutlet UIImageView *iconImageView;
  3. @property (weak, nonatomic) IBOutlet UILabel *titleLabel;
  4. @property (weak, nonatomic) IBOutlet UILabel *priceLabel;
  5. @property (weak, nonatomic) IBOutlet UILabel *buyCountLabel;
  6. @end
在XMGTgCell.h文件中提供一个模型属性,比如XMGTg模型
  1. @class XMGTg;
  2. @interface XMGTgCell : UITableViewCell
  3. /** 团购模型数据 */
  4. @property (nonatomic, strong) XMGTg *tg;
  5. @end
在XMGTgCell.m中重写模型属性的set方法
  1. - (void)setTg:(XMGTg *)tg
  2. {
  3. _tg = tg;
  4. // .......
  5. }
在控制器中
  1. [self.tableView registerNib:[UINib nibWithNibName:NSStringFromClass([XMGTgCell class]) bundle:nil] forCellReuseIdentifier:ID];
  1. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  2. {
  3. // 访问缓存池
  4. XMGTgCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
  5. // 设置数据(传递模型数据)
  6. cell.tg = self.tgs[indexPath.row];
  7. return cell;
  8. }

storyboard方式

新建一个继承自UITableViewCell的子类,比如XMGTgCell
  1. @interface XMGTgCell : UITableViewCell
  2. @end
在storyboard文件中,找到UITableView里面的cell(动态cell)

  1. @interface XMGTgCell()
  2. @property (weak, nonatomic) IBOutlet UIImageView *iconImageView;
  3. @property (weak, nonatomic) IBOutlet UILabel *titleLabel;
  4. @property (weak, nonatomic) IBOutlet UILabel *priceLabel;
  5. @property (weak, nonatomic) IBOutlet UILabel *buyCountLabel;
  6. @end
在XMGTgCell.h文件中提供一个模型属性,比如XMGTg模型
  1. @class XMGTg;
  2. @interface XMGTgCell : UITableViewCell
  3. /** 团购模型数据 */
  4. @property (nonatomic, strong) XMGTg *tg;
  5. @end
在XMGTgCell.m中重写模型属性的set方法
  1. - (void)setTg:(XMGTg *)tg
  2. {
  3. _tg = tg;
  4. // .......
  5. }
在控制器中
  1. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  2. {
  3. static NSString *ID = @"tg";
  4. // 访问缓存池
  5. XMGTgCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
  6. // 设置数据(传递模型数据)
  7. cell.tg = self.tgs[indexPath.row];
  8. return cell;
  9. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注