UIScrollView
에는 텍스트 필드가있는 여러 동적 뷰가 있습니다. 상자 중 하나에 입력을 시작하면 필드가 화면 상단에 표시되도록 스크롤보기를 표시해야합니다 (키보드 위에 표시됨). 그것은 위대한 작품; 여기에 코드입니다 : 스크롤 뷰가 맨 위에까지 스크롤 할 때마다UIScrollView를 스크롤하여 가장 낮은 텍스트 필드를 표시합니다.
(void)didStartTyping:(id)sender {
[scrollView setContentOffset:CGPointMake(0, subView.frame.origin.y) animated:YES];
scrollView.scrollEnabled = NO;
}
(void)didFinishTyping:(id)sender {
scrollView.scrollEnabled = YES;
}
그러나, 나는 가장 눈에 보이는 텍스트 필드에 입력을 시작, 그것은 약 40 픽셀로 충분히 (짧은 아래로 스크롤하지 않습니다). 의문의 여지는 스크롤 뷰의 상단에서 한 픽셀 아래로 스크롤하면 작동하지만 맨 위로 스크롤하면 매우 다르게 동작합니다.
두 시나리오 모두에서 scollview의 프레임을 기록하고 거기에 무엇이 있는지 확인해야합니까? 내가 생각할 수있는 것은 아래쪽 오프셋을 늘릴 필요가 있다는 것입니다. – rishi
글쎄, 그건 말이 되겠지. 그러나 현재로서는보기가 스크롤 될 때 밑보기의 텍스트 필드를 볼 수 없도록 하위보기의 크기를 조정하는 것이 추악한 해결 방법입니다. 최적은 아니지만 지금은 효과가 있습니다.이 문제로 돌아 가면 어떻게 진행되는지 알려 드리겠습니다. 고마워 리시. – Gazzini
수동으로 스크롤보기를 원하는 위치로 스크롤 할 수 있습니다. 즉, 텍스트 필드에 포커스를 두지 않고 키보드가 나타나면 원하는 위치로 스크롤보기를 끌 수 있습니까? 원하는 위치로 드래그 할 수 있습니까? 대부분의 경우 스크롤 뷰의 콘텐츠 크기가 콘텐츠를 엄격하게 감싸는 경우 실제로 마지막 항목을 상단으로 가져올 수 없습니다. 이것을 말하는 또 다른 방법은 콘텐츠 크기 높이를 콘텐츠보다 훨씬 더 크게 설정할 수 있습니까? – danh