滚动时viewForHeaderInSection消失

我在我的UITableView中使用自定义标题视图,但只要我开始向下滚动标题消失,而不是像使用默认标题保持在原位。 而且它不是在屏幕上滚动,只是完全消失。 viewForHeaderInSection仍然被调用,但我的自定义标题视图的drawRect方法不是。 我究竟做错了什么? 这是一些代码…

我的UITableView数据源…

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { HeaderView* headerView = [[[HeaderView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 40.0f)] autorelease]; return headerView; } 

…和我的自定义标题…

 -(void)drawRect:(CGRect)rect { CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetRGBFillColor(context, 115.0f, 125.0f, 133.0f, 0.5f); CGContextFillRect(context, CGRectMake(0.0f, 0.0f, 320.0f, 40.0f)); } 

我过去曾经遇到这个问题,为了避免这个问题,我通常在我的表代理/数据源上创build一个ivar,然后添加一个保留该对象的属性。 这样,滚动后,对象不会被回收,我甚至可以从代码的其他部分访问和更改其值(实际上可能需要根据应用程序的不同)。 这样你就不会放弃子类化和创build自己的头文件的优势。