友情链接:
关于UIView的XIB加载
关于创建XIB无法改变size的设置
注意: 自定义cell的XIB,在XIB上的控件必须全部设置约束,否则不能自适应行高
-
创建一个
image.pngBTUITableViewCell
-
纯代码创建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;
}
- 在
BTUITableViewCell.m
中会调用
@implementation BTUITableViewCell
- (void)awakeFromNib {
[super awakeFromNib];
}
-
在
image.pngBTUITableViewCell .h
中进行连线
-
BTUITableViewCell .m
set方法设置数据
- (void)setTitle:(NSString *)title {
self.titleLabel.text = title;
}
网友评论