2010-10-05 3 views
7

Je dois placer un bouton immédiatement au-dessus d'un UIViewTable à remplissage dynamique. Il se sent droit de ne pas remplir la première cellule (ligne 0), mais plutôt utiliser la zone d'en-tête, donc j'utiliser la méthode UITableViewDelegate pour créer par programmation un UIView contenant un UIButton:Ajout d'un UIButton dans l'en-tête de l'en-tête UITableView

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{   
    UIView *headerView = [[[UIView alloc] initWithFrame:CGRectMake(0,0, 320, 44)] autorelease]; // x,y,width,height 

    UIButton *reportButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];  
    reportButton.frame = CGRectMake(80.0, 0, 160.0, 40.0); // x,y,width,height 
    [reportButton setTitle:@"rep" forState:UIControlStateNormal]; 
    [reportButton addTarget:self 
        action:@selector(buttonPressed:) 
      forControlEvents:UIControlEventTouchDown];   

    [headerView addSubview:reportButton]; 
    return headerView;  
} 

Cependant, comme décrit ci-dessous, la le bouton n'a pas l'espace nécessaire (je m'attendais à ce que la hauteur de l'en-tête respecte l'argument 44).

Quel est le problème ici? Je devrais ajouter que UITableView est créé dans un fichier XIB séparé.

alt text

Répondre

7

avez-vous mis en œuvre - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section?

+2

Dommage que je ne peux que récompenser une réponse. Merci. – maralbjo

Questions connexes