2013-02-19 5 views
2

사용자가 키보드를 클릭 할 때 클릭하는 텍스트 필드가 있습니다. 그런 다음 스크롤 뷰가 조정되어 입력중인 내용을 읽을 수 있습니다.키보드가 iOS에 표시 될 때 스크롤하지 않습니다.

내 문제는 일단 사용자가 화면에서 계속 스크롤 할 수있게하려는 것입니다. 어떻게 할 수 있습니까?

답변

0

1 부 :

스크롤 뷰의 컨텐츠 크기가 실제로 포함 된 뷰의 크기 또는 위치 관련이 없습니다. 스크롤 뷰의 내용뿐만 아니라 내용보기의 크기를 변경하려면 두 가지 방법을 호출해야합니다.

CGSize newSize; 
UIScrollView *scrollView; 
// assume self is the content view 
CGRect newFrame = (CGRect){CGPointZero,newSize}; // Assuming you want to start at the  top-left corner of the scroll view. Change CGPointZero as appropriate 
    [ scrollView setContentSize:newSize]; // Change scroll view's content size 
    [self setFrame:newFrame]; // Change views actual size 

2 부 :

setNeedsDisplay 디스플레이를 필요로 전체보기를 표시한다. 표시되는 부분 만 표시하려면 setNeedsDisplayInRect : visibleRect를 사용해야합니다. 보기가 왼쪽 위 모서리 (프레임의 원점은 0)에 있고 스크롤보기가 확대를 허용하지 않는다고 가정하면 보이는 사각형은 스크롤보기의 내용 오프셋 및 범위 크기를 사용하여 찾을 수 있습니다.

CGRect visibleRect; 
    visibleRect.origin = [scrollView contentOffset]; 
    visibleRect.size = [scrollView bounds].size; 
    [self setNeedsDisplayInRect:visibleRect]; 

부분 만 변경하면 보이는 사각형의 일부분을 그리도록 선택할 수도 있습니다.

TPKeyboardAvoiding

-1
- (void)viewDidLoad 
{ 
[super viewDidLoad]; 

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(keyboardWasShown:) 
              name:UIKeyboardDidShowNotification 
              object:nil]; 
[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(keyboardWasShown:) 
              name:UIKeyboardWillHideNotification 
              object:nil]; 
} 



- (void)keyboardWasShown:(NSNotification *)notification 
{ 
    // To avoid keyboard hides the view 
CGRect frame = self.view.bounds; 
if (capitalTextField.enabled ==YES) 
{ 
    if ([notification name]== UIKeyboardDidShowNotification) 
    { 

     frame.origin.y += 200; 
     [self.scrollView scrollRectToVisible:frame animated:YES]; 
    } 
    else 
    { 
     frame.origin.y -= 200; 
     [self.scrollView scrollRectToVisible:frame animated:YES]; 
    } 
    } 
} 
-1

은 그냥있는 ScrollView

의 contentsize 속성의 높이를 증가 :

그리고 당신은 또한 다음과 같은 예를 볼 수 있습니다

관련 문제