2012-03-05 3 views
2

나는 세 개의 셀만있는 커스텀 테이블을 가지고있다. 세 번째 셀에는 textView가 있습니다. 세 개의 셀은 화면에 충분한 공간을 덮어서 키보드 공간 만 남겨 둡니다. 움직이거나 스크롤 할 수있는 것을 원하지 않기 때문에 self.tableView.scrollEnabled = NO;을 사용했습니다.UITextView를 스크롤하는 UITableView를 멈추는 방법

이전 버전의 iOS에서 정상적으로 작동합니다. 그러나 iOS 5에서는 이상한 행동을 보입니다. textView에 여러 줄의 텍스트를 입력하면 전체 테이블이 위로 스크롤됩니다. 이상적으로 테이블은 거기에 고정되어야하며 textView 만 스크롤해야합니다.

많은 것을 시도한 후에 textView가 키보드 가까이에 배치되어있는 것으로 나타났습니다 (textView가 마지막 셀에 있고 키보드 바로 아래에 키보드가 있습니다). iOS가 textView를 이동하려고합니다. 전체 테이블을 위로 스크롤합니다. tableView의 자동 스크롤을 중지 할 수있는 방법이 있습니까?

여기에 언급 된 동일한 문제가 발견되었습니다. Disable UITextView scrolling the containing view? 아직 답변이 없습니다. 그리고 거기에 언급 된 해결 방법은 스크롤 할 수있는 내보기 자체가 스크롤 가능하므로 (UITableView)

+0

같은 테이블보기에서 스크롤로 해결할? 같은 문제가 발생했습니다. –

+0

@SteveBaughman : 정확하지 않습니다. 해결 방법을 만들었습니다. 'UITextView'가 키보드로 너무 가깝기 때문에 위에 이동하지 않았습니다. 나는이 문제를 해결하기 위해'UITextView'와 키보드 사이의 거리를 늘렸다. 나는 아직도이 문제에 대한 적절한 해결책을 찾고있다. – Sam

답변

0

한 가지 해결책은 완전히 새로운 하위 뷰를 추가하는 것입니다. UITextViewself.view에 추가하고 화면에서 동일한 위치에 해당하는 프레임을 지정하십시오. 이제 테이블보기가 스크롤되지 않아야합니다. self.view 테이블보기 때문에

이 경우이 작동하지 않습니다 (즉, 당신은 @interface 선언을 언급해야) 클래스 UIViewController에 컨트롤러를 변경하고 위임 및 데이터 소스 방법을 직접 구현한다. 그러면 테이블보기는 self.view의 하위보기 여야하며 IB를 통해 연결해야합니다.

키보드를 닫을 때 원본 텍스트보기로 내용을 복사하십시오. 나를 위해

+0

프로그래밍 방식으로 self.view에 서브 뷰를 추가하는 중이지만 작동하지 않습니다. 'UITableViewController'에서 내 기본보기를 'UIViewController'로 변경하는 것이 내가 찾는 해결책이 아닙니다. 이 문제는 iOS 5에서 시작되었으므로 자동 스크롤을 중지하도록 설정할 수있는 속성이나 메소드가 있어야합니다. – Sam

3

, 난 당신이에 대한 해결책을 찾기이

-(void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    if(self.tableView.contentOffset.y != 0) 
    { 
     self.tableView.contentOffset = CGPointMake(0, 0); 
    } 
} 
관련 문제