如果我有UITableViewCellSubclass
可以根据TypeA
或TypeB
改变布局。
我应该有一个[UITableViewCellSubclass initWithType:type]
的初始值,每当类型更改时,我都会调用[tableView reloadRowsAtIndexPath:indexPathForUITableViewCellSubclass]
或
我跳过自定义初始化并实现-layoutSubviews
和-setType:
,每当我需要更改单元格类型时,我都会通过调用[tableView cellForRowAtIndexPath:indexPath]
然后调用来获取对单元格的引用[cell setType:TypeB]
- (void)setType:(Type)type {
if (type == _type) return;
_type == type;
[self setNeedsLayout];
}
- (void)layoutSubviews {
[super layoutSubviews];
if (self.type == TypeA) {
CGRect frame = foo;
thing.frame = frame;
}
if (self.type == TypeB) {
CGRect frame = bar;
thing.frame = frame;
}
}
编辑:我应该澄清一下,类型更改实际上并没有改变很多。只需更改指示单元格类型的图像。