2013-08-13 2 views
0

tableview의 마지막 행에서 입력을 완료하고 완료되면 행에 텍스트를 추가하고 tableview를 업데이트하는 텍스트 필드가 있습니다. 키보드가 나타나면 tableview를 마지막 행으로 스크롤해야합니다.UITableview scrollToRowAtIndexPath가 마지막 행에 대해 작동하지 않습니다.

나는 이것을 관리하기 위해 두 가지 일을했지만 작동하지 않았습니다.

-(void) textFieldDidBeginEditing:(UITextField *)textField { 
    [archiveTabelView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:lastRow inSection:0] atScrollPosition:UITableViewScrollPositionNone animated:YES]; 
    archiveTabelView.scrollEnabled = NO; 
} 

작동하지 않으며 지연 후 scrollToRowAtIndexPath를 호출해도 작동하지 않습니다.

친절히 제안합니다.

+0

위임자를 설정하고 중단 점이 있는지 확인하는 것이 호출되는 방법입니다. – Manthan

답변

0

키보드가 표시되는 스크롤을 처리하는 가장 좋은 방법은, 당신이 당신의 컨텐츠를 이동하려는 당신이 당신을 이동할 때 UIKeyboardWillHideNotification 또는 UIKeyboardDidHideNotification가 따라 할 때 따라 UIKeyboardDidShowNotification 또는 UIKeyboardWillShowNotification에 관찰자로 클래스를 등록하는 것입니다 콘텐츠 다운.

알림 개체에 알림 중 하나가 전송되면 키보드 크기를 찾을 수 있습니다.이 크기를 사용하면 내용을 위/아래로 이동하거나 contentSize을 적절히 늘리거나 줄일 수 있습니다.

UITextFieldresingFirstResponder을 호출하면 숨기기 알림이 전송됩니다. 키보드가/표시됩니다 제대로 스크롤 테이블보기를 만들기 위해 지금

는 증가 /있는 tableView UIScrollViewcontentSize을 감소 아마도 scrollToRow 대신 setContentOffset:animated:를 사용해야합니다 숨 깁니다.

+0

작동하지만, scrollToRow가 작동하지 않는 이유가 궁금합니다. 그래도 고마워! –

+0

@NabeelThobani scrollToRow는 행이 표시 될 때까지 스크롤합니다. 따라서 행이 보이면 (더 아래쪽에) 더 이상 스크롤되지 않습니다. – danypata

0

콘텐츠 크기를 추가하십시오. 그리고 tableview 프레임이 content size.If와 함께 있는지 확인하려고하면 두 프레임을 모두 취소 할 수 있습니다.

1

아무렇게나 움직이는 애니메이션은 나를 위해 작동했습니다. 이 정확한 이유는 확실하지 않습니다.

[archiveTabelView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:lastRow inSection:0] atScrollPosition:UITableViewScrollPositionNone animated:NO]; 
관련 문제