美文网首页
关于UITableView的自定义cell加载XIB

关于UITableView的自定义cell加载XIB

作者: 小熊翻译App | 来源:发表于2017-12-18 14:42 被阅读0次
友情链接:

关于UIView的XIB加载
关于创建XIB无法改变size的设置

注意: 自定义cell的XIB,在XIB上的控件必须全部设置约束,否则不能自适应行高
  1. 创建一个 BTUITableViewCell

    image.png
  2. 纯代码创建tableview,并加载XIB文件

#pragma mark - 设置tableView
- (void)setupUI {
    UITableView *tv = [[UITableView alloc]initWithFrame:self.view.frame style:UITableViewStylePlain];
    [self.view addSubview:tv];
    设置预估行高和行高自适应
    tv.estimatedRowHeight = 44.0f;
    tv.rowHeight = UITableViewAutomaticDimension;
    [tv registerNib:[UINib nibWithNibName:@"BTUITableViewCell" bundle:nil] forCellReuseIdentifier:zeroCellId];
    [tv registerClass:[UITableViewCell class] forCellReuseIdentifier:firstCellId];          // 注册第一个cell
    tv.delegate = self;
    tv.dataSource = self;
}
#pragma mark - UITableViewDataSource
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 10;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell;
    ///创建不同的cell
    if (indexPath.row == 0) {
        BTUITableViewCell *customTableViewCell = [tableView dequeueReusableCellWithIdentifier:zeroCellId forIndexPath:indexPath];
        cell = customTableViewCell;
        customTableViewCell.title = @"XIB自定义tableViewcell";
    }
    else {
        UITableViewCell *normalCell = [tableView dequeueReusableCellWithIdentifier:firstCellId forIndexPath:indexPath];
        cell = normalCell;
    }
    return cell;
}
  1. BTUITableViewCell.m中会调用
@implementation BTUITableViewCell
- (void)awakeFromNib {
    [super awakeFromNib];
    
}
  1. BTUITableViewCell .h中进行连线

    image.png
  2. BTUITableViewCell .m set方法设置数据

- (void)setTitle:(NSString *)title {
    self.titleLabel.text = title;
}

相关文章

网友评论

      本文标题:关于UITableView的自定义cell加载XIB

      本文链接:https://www.haomeiwen.com/subject/wwmpwxtx.html