Ho una vista sullo storyboard per mostrare il modulo di accesso dell'utente, quindi è simile a questa: vista principale-> vista di scorrimento-> vista del contenuto-> due campi di testo e pulsante di accesso al superiore e un pulsante di registro nella parte inferiore della vista. Uso l'autolayout e il pulsante in basso ha un vincolo di spazio in basso. Quando tocco il campo di testo e appare la tastiera, vorrei scorrere la vista per cambiare la dimensione in rect visibile, ma la dimensione del contenuto dovrebbe rimanere per scorrere verso il basso fino al pulsante di registrazione, ma il pulsante si sposta quando cambia la dimensione della vista di scorrimento. Come potrei fare ciò che voglio?AutoLayout iOS con scrollview e tastiera
Io uso questo codice quando viene visualizzata la tastiera:
- (void)keyboardWillShow:(NSNotification *)aNotification
{
NSDictionary *info = [aNotification userInfo];
NSValue *kbFrame = [info objectForKey:UIKeyboardFrameEndUserInfoKey];
NSTimeInterval animationDuration = [[info objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue];
CGRect keyboardFrame = [kbFrame CGRectValue];
CGSize s = self.scrollView.contentSize;
CGFloat height = keyboardFrame.size.height;
self.scrollViewBottomLayoutConstraint.constant = height;
[UIView animateWithDuration:animationDuration animations:^{
[self.view layoutIfNeeded];
[self.scrollView setContentSize:s];
}];
}
Grazie. Funziona. –
Ottima risposta; funziona alla grande per me! Grazie! –
bello e semplice, ma un problema è che le barre della vista di scorrimento non vengono ridimensionate alla parte visibile della vista scorrimento/tabella/raccolta. –