我正在尝试提取tableHeaderView
的{{1}}。
UITableView
首先,我强烈提及@property (weak, nonatomic) UIView *floatingHeaderView;
- (void)setUp
{
UIView *tableHeaderView = self.tableView.tableHeaderView;
UIView *dummyTableHeaderView = [[UIView alloc] initWithFrame:tableHeaderView.frame];
CGRect frame = tableHeaderView.frame;
frame.size.width = self.tableView.frame.size.width;
tableHeaderView.frame = frame;
[tableHeaderView removeFromSuperview];
[self.tableView addSubview:tableHeaderView];
self.tableView.tableHeaderView = dummyTableHeaderView;
self.floatingHeaderView = tableHeaderView;
}
。然后,我从superview中删除了self.tableView.tableHeaderView
并将其添加到tableHeaderView
。最后,我对self.tableView
提出了弱引用,因为我认为tableViewHeader
对tableViewHeader
有强烈的引用。但在运行时,self.tableView.subviews
指向self.floatingHeaderView
。
如何解决这个奇怪的问题?
答案 0 :(得分:0)
我非常确定tableView保留了对它的子视图的强引用,而不是相反。我打电话给你[tableHeaderView removeFromSuperview];它让代表调用它的超级视图告诉它它需要被删除。这仍然是一个弱的参考。
所以你需要使floatingHeaderView成为一个强大的指针。