我的视图控制器设置如此,所有我的UIViews都在XIB中,
@property (weak, nonatomic) IBOutlet UIView *tableHeader, *likesHeader, *commentsHeader, *followersHeader;
当视图加载时,所有可见的节标题都会正确显示,但是一旦我滚动它们就会消失。我使用委托方法来设置节标题。
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
if (section == 0) {
return self.tableHeader;
} else if (section == 1) {
return self.likesHeader;
} else if (section == 2) {
return self.commentsHeader;
} else if (section == 3) {
return self.followersHeader;
}
return nil;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
if (section == 0) {
return 120.0;
} else {
return 35.0;
}
}
我是如何搞砸的?
答案 0 :(得分:1)
您可能需要将商家从weak
更改为strong
。
由于您的标题视图不是以超级视图的子视图开头,因此没有其他任何内容可以引用它们。因此,您的弱出口将变为零,并且标题视图将被取消分配。
您可能会成功返回最初可见的标头,因为nib加载器可能会将它们放入自动释放池中,直到表视图请求它们之后才会将其排出。当标题离开屏幕时,表格视图会释放它们。由于没有别的东西保留它们,它们被解除分配,系统将你的弱点设置为零。
答案 1 :(得分:0)
将声明从weak
更改为strong
。