2017-04-11 2 views
1

UITableView를 특정 위치로 스크롤하는 방법을 설명하는 많은 답을 보았습니다.setContentOffset을 사용하여 UITableView를 특정 위치로 스크롤하는 법이 제대로 작동하지 않습니다. - ObjC

나는 특정 위치로 스크롤하는 데 setContentOffset을 사용합니다.

이상한 문제가 발생했습니다. 내 tableView이 반 스크롤 된 경우 setContentOffset이 올바르게 작동합니다. 그러나 tableView 끝으로 스크롤 한 다음 setContentOffset을 사용하면 테이블보기가 조금 더 스크롤됩니다.

setContentOffset 값은 CGPoint(0,199)입니다.

[self.tableView setContentOffset:CGPointMake(0,199) animated:NO]; 

하단에 도달하면 setContentOffset을 사용합니다. 그런 다음 contentOffsetUITableView인지 확인합니다. 169입니다.

정확히 어떤 문제인지 파악할 수 없습니다.

편집 ::

다음 코드를 사용 중입니다. 때 마지막 셀에있는 버튼을 누를 때

- (void)userPressedSubmitButtonOnLastCell 
{ 

[self updateData]; 
[self.tableView reloadData]; 
[self performSelector:@selector(scrollTableView) withObject:nil afterDelay:0.5]; 
} 

- (void)scrollTableView 
{ 
[self.tableView setContentOffset:CGPointMake(0,199) animated:NO]; 
} 
+0

귀하의 제약 조건이 올바른지 확인하십시오. – Jack

+0

예 제약 조건이 적절합니다 @Janesh – Dalvik

+0

scrollView 대리인 코드 – karthikeyan

답변

1

tableView scrollToRowAtIndexPath: 또는 tableView scrollRectToVisible:(CGRect)를 사용하지 않는? 이렇게하면 특정 행이나 사각형으로 스크롤 할 수 있습니다. UIScrollView에 대해 ContentOffset이 더 적합합니다.

+0

내 테이블보기의 하단 (마지막 행에 있음)에 'UIButton'이 있습니다. 그 버튼을 클릭 할 때 맨 위의 테이블보기를 스크롤해야합니다. 헤더 (테이블 뷰 헤더)도 가지고 있기 때문에'tableView scrollToRowAtIndexPath :'를 사용할 수 없습니다. 그리고 Header의 일부를 보여줘야합니다. – Dalvik

+0

귀하의 질문은 맨 아래로 스크롤하는 것이 아니라 상단으로 스크롤하는 것에 관한 것이라고 생각했습니다. – Koen

+0

'tableView scrollRectToVisible :'을 사용하고 rect y = 0을 설정하여 테이블 맨 위로 스크롤 할 수 있다고 생각하십시오. –

관련 문제