2010-10-15 3 views
1

Si j'ajoute le bouton droit tout va bien. Je voudrais vraiment l'ajouter à l'intérieur d'une vue et être toujours capable de cliquer dessus. Voici le code:UIButton dans UIView dans UITableView = ne peut pas cliquer sur le bouton

UIView *containerView = 
[[[UIView alloc] 
initWithFrame:CGRectMake(0, 0, 300, 60)] 
autorelease]; 
UIButton *footerButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
footerButton.frame = CGRectMake(10, 10, 300, 40); 
[footerButton addTarget:self action:@selector(click) forControlEvents:UIControlEventTouchUpInside]; 
[containerView addSubview:footerButton]; 
+0

Comment utilisez-vous 'containerView'? Vous faites '[tableView addSubview: containerView]', ou vous l'utilisez dans une cellule de vue de table? Vous devriez essayer d'utiliser UIButtonTypeRoundedRect et voir s'il interagit ou non. – tia

+0

Je l'utilise dans un footer – gurghet

Répondre

1

Tout fonctionne bien! Dans votre TableViewController, faites:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    UIView *containerView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 60)] autorelease]; 
    UIButton *footerButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
    footerButton.frame = CGRectMake(10, 10, 300, 40); 
    [footerButton addTarget:self action:@selector(click) forControlEvents:UIControlEventTouchUpInside]; 
    [containerView addSubview:footerButton]; 

    [footerButton setTitle:@"Touch me!" forState:UIControlStateNormal]; 
    containerView.backgroundColor = [UIColor colorWithWhite:0.5 alpha:0.5]; 
    self.tableView.tableFooterView = containerView; 
} 

- (void)click { 
    NSLog(@"I am here!"); 
} 
+0

Merci mais malheureusement je le charge dans la méthode footerviewforsection: – gurghet

1

Cette @selector(click) semble un peu étrange. J'aurais pensé que votre fonction de clic voudrait quelque chose comme:

- (void)click:(id)sender; 

Si c'est ce que vous avez alors vous devez ajouter deux points @selector(click:) pour faire le match de signatures.

+0

Je viens de changer le code pour le rendre bref, ce n'est évidemment pas comme ça – gurghet

2

Avez-vous défini la hauteur du pied de page à la hauteur de la vue que vous y ajoutez? J'ai rencontré un problème similaire lorsque j'ai renvoyé un UIView contenant un UIButton dans la méthode viewForFooterInSection. La hauteur du pied de page n'était pas assez grande jusqu'à ce que je mette à jour la méthode heightForFooterInSection. Par exemple:

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section 
{ 
    return containerView.bounds.size.height; 
} 
Questions connexes