2010-06-15 6 views
1

J'ai un UIScrollView et dans la partie inférieure de l'écran est un champ de texte. Lorsque je sélectionne le champ de texte, le clavier est affiché au-dessus du champ de texte. L'UIView dans UIScrollView n'est pas assez grand pour défiler vers le haut et libérer de l'espace pour le clavier. J'ai donc essayé d'élargir le programme UIView. Voici ce que j'ai:UIScrollView scroll problem

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 


UIScrollView *scrollView = (UIScrollView *)[[self view] viewWithTag: 2]; 
UIView *contentview = [[self view] viewWithTag: 3]; 

CGRect rect = contentview.frame; 

rect.size.height = 650; 
contentview.frame = rect; 

[scrollView setContentSize: contentview.frame.size]; 

//first try 
rect.origin.y = 450; 
[scrollView scrollRectToVisible: rect animated: YES]; 

//second try 
CGPoint point = CGPointMake(0, 450); 
[scrollView setContentOffset: point animated: YES]; 

return YES; 
} 

merci.

Répondre

3

Vous pouvez vous inscrire pour recevoir le UIKeyboardWillShowNotification dans votre contrôleur de vue. Déplacez ensuite le cadre de vue du contrôleur de vue vers le haut en fonction de la taille du clavier fournie dans la notification.

CGRect frame = self.view.frame; 
frame.origin.y -= keyboard.size.height; 
self.view.frame = frame; 

Faire le contraire pour UIKeyboardWillHideNotification.