我在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));
}
答案 0 :(得分:2)
我以前遇到过这个问题,为了避免这种情况,我通常会在我的表委托/数据源上创建一个ivar,然后添加一个保留该对象的属性。这样,在滚动时不会回收对象,我甚至可以从代码的其他部分访问和更改其值(根据应用程序可能实际需要)。这样您就不会放弃子类化和创建自己的标题的优势。