2011-10-27 11 views
5

Ho un UIView (vista B) con un UIButton su di esso.iPhone - Il pulsante UI nidificato in UIView non risponde al tocco dopo l'animazione di quella vista

Aggiungo questa vista B alla mia vista principale (vista A) in un'area al di fuori dei limiti della vista principale e io di animarla con un'animazione UIView.

Dopo che l'animazione UIView è completa e View B ora è in cima alla vista A in modo che il pulsante sia visibile, il pulsante non risponde ai tocchi ... Non l'ho mai visto prima ma questa è la prima app che sono facendo con il nuovo iOS (iOS 5). Qualche idea?

Grazie in anticipo.

+0

Lo hai mai capito? – Ralphleon

+0

Si prega di inviare un po 'di codice. – QED

+0

Ho avuto lo stesso problema ora, l'hai capito? –

risposta

2

È questa la situazione che stai descrivendo? Perché sembra funzionare bene. Hai controllato se userInteractionEnabled è impostato su YES su UIView?

- (void)buttonPressed:(UIButton*)button 
{ 
    NSLog(@"button pressed"); 
} 

- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 

    UIView* view = [[UIView alloc] initWithFrame:CGRectMake(0, -100, 100, 100)]; 
    view.backgroundColor = [UIColor blackColor]; 

    UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    [button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside]; 
    [button setTitle:@"Button" forState:UIControlStateNormal]; 
    button.frame = CGRectMake(0, 10, 100, 20); 
    [view addSubview:button]; 

    [self.view addSubview:view]; 

    [UIView animateWithDuration:0.5 animations:^{ 
     view.transform = CGAffineTransformMakeTranslation(0, 100); 
    }]; 

    [view release]; 
} 
0

Se è stato creato il pulsante attraverso la programmazione, allora dovete fare: -

myButton.userInteractionEnabled =YES; 

speriamo vi sia utile ... :)

1

Non sono sicuro che questo è stato risposto quindi gli do un colpo, solo per la cronaca:

Verificare che i pulsanti non siano fuori dalla cornice di qualsiasi superview.

Ho trovato che un pulsante posizionato all'esterno potrebbe non funzionare. Vieni a pensarci, questo è strano. Mi sono imbattuto in questo quando stavo facendo una vista con pulsanti che si animano dal basso. Al di sotto di questo ho una vista grigia e tangibile per consentire l'annullamento. L'unico problema era che 1) per l'area grigia ho usato la vista genitore stessa e 2) ho lasciato che questa area grigia si restringesse come la sottoview animata sul posto ... quindi, come risultato, i pulsanti sono diventati esterni e non ha funzionato .

Soluzione era di lasciare la vista a grandezza naturale e aggiungerne un'altra come il grigio, o rendere la prima grigia e non ridotta (l'unica ragione per cui volevo evitare era quella di creare una pila di strati semitrasparenti che non è ottimale). Quindi la vista con i pulsanti in cima a quello. :)

Spero che questo aiuti.

Problemi correlati