我正在尝试创建一个UIView
作为子类的子视图UITableViewCell
。本质上,我想要一个与单元格大小相同的视图,并且位于单元格contentView
和backgroundView
.
我想在引擎盖下的某个地方(可能在 中layoutSubviews
),有一条线,UITableViewCell.m
例如:
if (self.contentView != nil) {
[self addSubview:self.contentView];
}
如果我想模仿 Apple 的做法,我应该将这段代码放在我自己的自定义UITableViewCell
子类中的什么位置?
此外,在我第一次尝试的实现中,显示了子视图,但它的默认单元格高度为 44px,而不是我在tableView:heightForRowAtIndexPath:
. 还出现了其他小错误,这就是为什么我想尝试复制 Apple 的实现而不是尝试我自己的半功能实现。
编辑:到目前为止,这是我的代码:
在CustomTableViewCell.h
interface CustomTableViewCell : UITableViewCell
@property (nonatomic, strong) UIView *newSubview;
@end
在CustomTableViewCell.m
- (void)layoutSubviews {
[super layoutSubviews];
if (self.newSubview != nil) {
self.newSubview.autoresizingMask = UIViewAutoresizingFlexibleHeight;
[self insertSubview:self.newSubview aboveSubview:self.backgroundView];
}
}
在tableViewController.m
static NSString *CellIdentifier = @"Cell";
myCustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[CustomTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
UIView *view = [[UIView alloc] initWithFrame:cell.frame];
view.backgroundColor = [UIColor orangeColor];
cell.newSubview = view;