2010-06-15 6 views
1

저는 UIScrollView가 있고 화면의 하단에는 텍스트 필드가 있습니다. 텍스트 필드를 선택하면 키보드가 텍스트 필드 위에 표시됩니다. UIScrollView 내의 UIView는 위로 스크롤하여 키보드 공간을 확보 할만큼 크지 않습니다. 그래서 나는 프로그램 적으로 UIView를 확대하려고 노력했다. 이것은 내가 가지고있는 것입니다 :UIScrollView 스크롤 문제

- (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; 
} 

감사합니다.

답변

3

보기 컨트롤러에 UIKeyboardWillShowNotification을 수신하도록 등록 할 수 있습니다. 그런 다음 알림 컨트롤러에서보기 프레임을 알림에 제공된 키보드 크기만큼 위로 이동하십시오.

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

UIKeyboardWillHideNotification의 반대입니다.

관련 문제