uitableview headerViewForSection: always returns nil

前端 未结 3 1844
故里飘歌
故里飘歌 2020-12-09 17:10

I have a table with custom header views that no matter when, or what value I choose for section, I always get nil value. I have another table with the same problem.

3条回答
  •  天命终不由人
    2020-12-09 17:33

    It's been awhile since this question was asked and recently I had come across a similar issue and had asked my own question here: UITableView -headerViewForSection returns (null)
    I believe I have the answer.


    Prerequisite Steps:

    1. Create a UITableViewHeaderFooterView subclass and name it CustomHeaderView
    2. Create a view interface nib file for the class (apparently you have named it iPadTableCells here)
    3. In the xib, select the View & in it's Identity Inspector
      • Specify the Custom Class as CustomHeaderView
    4. Make a property, synthesize and connect it to the xib
      • @property (strong, nonatomic) IBOutlet UIActivityIndicatorView *activityIndicator;

    Use the following code:

    - (UIView*) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
    {
        static NSString *HeaderIdentifier = @"header";
        CustomHeaderView *header = [tableView dequeueReusableHeaderFooterViewWithIdentifier:HeaderIdentifier];
    
        if(!header) {
            NSArray* objs = [[NSBundle mainBundle] loadNibNamed:@"iPadTableCells"
                                                          owner:nil
                                                        options:nil];
            header = [objs objectAtIndex: 0];
        }
    
        [header.activityIndicator startAnimating];
        return header;
    }
    

    then you can access it this way:

    CustomHeaderView *headerView = (CustomHeaderView*)[tableView headerViewForSection:section];
    [headerView.activityIndicator stopAnimating];
    

提交回复
热议问题