2010-04-27 10 views
0

Salut tout le monde que je crée ce bouton comme ceci:UIButton pas sélecteur de tir si je dessine en utilisant CALayer

_myButton = [[UIButton buttonWithType:UIButtonTypeCustom] retain]; 

    DLBadgeLayerDelegate *layerDelegate = [[DLBadgeLayerDelegate alloc] init]; 

    _myButton.frame = CGRectMake(0.0 , 0.0, 100.0, 100.0); 
    [_myButton addTarget:self action:@selector(myButtonTapped:) forControlEvents:UIControlEventTouchUpInside]; 
    _myButton.layer.backgroundColor = [[UIColor redColor] CGColor]; 

    _myButton.center = CGPointMake(10.0, 10.0); 
    [self addSubview:_myButton]; 
    [_myButton release]; 

Le bouton apparaît à l'écran, mais si je tape sur rien ne se passe. Si je crée simplement un bouton rectangle arrondi à la place, sans dessin personnalisé sur son calque ou si je laisse juste la ligne de calque de code tout fonctionne bien. Avez-vous une idée pourquoi ai-je ce comportement comme je voudrais faire un dessin personnalisé dans le calque du bouton?

Répondre

1

Les événements ne sont pas envoyés à un contrôle qui est (1) caché, (2) alpha < 0.1, (3) userInteraction = NO, etc. Comme vous n'avez aucune image de bouton, aucun titre de bouton, aucune couleur de fond, aucun image de fond, peut-être il est traité comme transparent (comme alpha < 0,1) et ne reçoit pas d'événements. Essayez d'ajouter une image, un titre ou une couleur d'arrière-plan (dans l'UIView, pas dans la couche) pour voir si c'est le problème.

EDIT: Essayez de mettre la couleur de fond dans backgroundColor au lieu de backgroundColor de la couche de la vue:

_myButton.backgroundColor = [UIColor redColor]; 
0

Si je quitte cette ligne sur:

_myButton.layer.backgroundColor = [[UIColor redColor] CGColor];

l'événement est déclenché correctement et je n'ai toujours aucun titre, alpha, etc. Je ne pense pas que ce soit le problème ou l'explication, mais je vais essayer de cette façon aussi.