再利用可能なヘッダーを使用してテーブルビューを作成します。xibからヘッダーをロードすると、ヘッダーで何か奇妙なことが起こっています
- (UIView*)dequeueReusableHeaderView
{
NSInteger indexAvailableView = [reusableHeaders indexOfObjectPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop)
{ return [obj superview] == nil; }];
return (indexAvailableView != NSNotFound)? reusableHeaders[indexAvailableView] : nil;
}
- (void)enqueueReusableView:(UIView*)headerView
{
[reusableHeaders addObject:headerView];
}
-(UIView*)tableView:(UITableView*)tableView viewForHeaderInSection:(NSInteger)section
{
BGDiaryHeader *header = (BGDiaryHeader*)[self dequeueReusableHeaderView];
if (!header) {
UINib *headerNib = [UINib nibWithNibName:@"BGDiaryHeader_iPhone" bundle:nil];
NSArray *aNib = [headerNib instantiateWithOwner:self options:nil];
BGDiaryHeader *header = [aNib objectAtIndex:0];
//if simple [[_ alloc]init] all works fine
// header = [[BGDiaryHeader alloc] init];
[self enqueueReusableView:header];
}
//set display data
return header;
}
コードでヘッダービューを作成すると、すべて正常に機能します