UIButton dans UIView ne répond pas aux événements tactiles

J'ai mis un UIButton à l'intérieur d'un personnalisé UIView et le bouton n'est pas de recevoir tous les événements tactiles (il n'est pas mis en évidence de l'état, donc mon problème est pas sur le fait d'être incapable d'associer une touche à l'intérieur jusqu'à un gestionnaire). J'ai essayé les deux, les mettre dans la XIB dans Interface Builder, et j'ai aussi essayé par programmation à l'ajout de la UIButton dans le UIView séparément, les deux terminé avec pas de chance. Tous mes points de vue sont à l'intérieur d'un UIScrollView, j'ai donc d'abord si UIScrollView peut-être de les bloquer, donc j'ai aussi ajouté un bouton en programmant exactement de la même façon-je ajouter mon affichage personnalisé dans UIScrollView, et le bouton travaillé, l'élimination de la possibilité de UIScrollView pourrait en être la cause. De mon point de Vue est hiérarchique, c'est comme cela:

UIButton dans UIView ne répond pas aux événements tactiles

Le bouton est sur l'affichage de l'image, et l'avant de la couche n'est pas occupant de mon bouton complètement, donc il n'y a aucune raison pour moi de ne pas être interagir physiquement avec le bouton. À ma vue personnalisée du code côté, je suis la création de mon point de vue en tant que telle:

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        //Initialization code
        UIView *sub = [[[NSBundle mainBundle] loadNibNamed:@"ProfileView" owner:self options:nil] objectAtIndex:0];
        [self addSubview:sub];
        [sub setUserInteractionEnabled:YES];
        [self setUserInteractionEnabled:YES];
        CALayer *layer = sub.layer;
        layer.masksToBounds = YES;
        layer.borderWidth = 5.0;
        layer.borderColor = [UIColor whiteColor].CGColor;
        layer.cornerRadius = 30.0;
        /*layer.shadowOffset = CGSizeZero;
        layer.shadowRadius = 20.0;
        layer.shadowColor = [[UIColor blackColor] CGColor];
        layer.shadowOpacity = 0.8;
        */
    }
    return self;
}

J'ai essayé toutes les combinaisons de setUserInteractionsEnabledet n'avait pas de chance. (Oui, aussi les mettre à vérifié dans Interface Builder). J'ai aussi lu dans une autre question avec un problème similaire que je devrais essayer primordial 'canBecomeFirstResponder de" retourner " OUI " et j'ai aussi fait ça aussi. Mais le problème persiste, je ne peux pas cliquer sur le bouton. Je n'ai pas donné toutes les propriétés spéciales, les paramètres pour le bouton, c'est juste un ordinaire. Mes autres objets dans la vue (les étiquettes ci-dessous, l'image vue à l'arrière du bouton, etc.) sont fonctionne correctement sans problèmes. Ce qui pourrait être éventuellement mal ici?

Merci,

Peut.

Mise à JOUR: Voici un rapide reproduction du problème: https://dl.dropbox.com/u/79632924/Test.zip
Essayez d'exécuter et cliquez sur le bouton.

source d'informationauteur Can Poyrazoğlu | 2012-11-25