新建一个继承自UITableViewCell的子类,比如TgCell
@interface TgCell : UITableViewCell
@end
在storyboard文件中,找到UITableView里面的cell(动态cell)
-
修改cell的class为TgCell
屏幕快照 2019-03-13 下午8.43.14.png -
绑定循环利用标识
屏幕快照 2019-03-13 下午8.43.22.png -
添加子控件,设置子控件约束
屏幕快照 2019-03-13 下午8.31.39.png - 将子控件连线到类扩展中
@interface TgCell()
@property (weak, nonatomic) IBOutlet UIImageView *iconImageView;
@property (weak, nonatomic) IBOutlet UILabel *titleLabel;
@property (weak, nonatomic) IBOutlet UILabel *priceLabel;
@property (weak, nonatomic) IBOutlet UILabel *buyCountLabel;
@end
在TgCell.h文件中提供一个模型属性,比如Tg模型
@class Tg;
@interface TgCell : UITableViewCell
/** 团购模型数据 */
@property (nonatomic, strong) Tg *tg;
@end
在TgCell.m中重写模型属性的set方法
- 在set方法中给子控件设置模型数据
- (void)setTg:(Tg *)tg
{
_tg = tg;
self.iconImageView.image = [UIImage imageNamed:tg.icon];
self.titleLabel.text = tg.title;
self.priceLabel.text = [NSString stringWithFormat:@"¥%@",tg.price];
self.buyCountLabel.text = [NSString stringWithFormat:@"%@人已购买",tg.buyCount];
// .......
}
在控制器中
- 注意storyboard中的cell可以不用在控制器里面去注册了
- 给cell传递模型数据
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *ID = @"tg";
// 访问缓存池
TgCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
// 设置数据(传递模型数据)
cell.tg = self.tgs[indexPath.row];
return cell;
}
本文介绍如何使用SwiftUI在iOS应用中创建自定义的UITableViewCell,包括创建子类TgCell,设置Storyboard,绑定复用标识,添加并设置子控件约束,以及在控制器中实现数据绑定。
7571

被折叠的 条评论
为什么被折叠?



