[ios] UIScrollView를 가져 와서 맨 위로 스크롤

UIScrollView를 맨 위로 스크롤하려면 어떻게합니까?



답변

iOS 7 업데이트

[self.scrollView setContentOffset:
    CGPointMake(0, -self.scrollView.contentInset.top) animated:YES];

실물

[self.scrollView setContentOffset:CGPointZero animated:YES];

또는 가로 스크롤 위치를 유지하고 세로 위치 만 재설정하려는 경우 :

[self.scrollView setContentOffset:CGPointMake(self.scrollView.contentOffset.x, 0)
    animated:YES];


답변

다음은 쉽게 사용할 수있는 Swift 확장입니다.

extension UIScrollView {
    func scrollToTop() {
        let desiredOffset = CGPoint(x: 0, y: -contentInset.top)
        setContentOffset(desiredOffset, animated: true)
   }
}

용법:

myScrollView.scrollToTop()


답변

iOS 11 이상

새로운 작업을 시도하십시오 adjustedContentInset.

예를 들어 (위로 스크롤) :

var offset = CGPoint(
    x: -scrollView.contentInset.left, 
    y: -scrollView.contentInset.top)

if #available(iOS 11.0, *) {
    offset = CGPoint(
        x: -scrollView.adjustedContentInset.left, 
        y: -scrollView.adjustedContentInset.top)    
}

scrollView.setContentOffset(offset, animated: true)

당신이 사용하는 경우에도 prefersLargeTitles, safe area


답변

스위프트 4

scrollView.setContentOffset(.zero, animated: true)


답변

사용하다 setContentOffset:animated:

[scrollView setContentOffset:CGPointZero animated:YES];


답변

Swift 2.0 / 3.0 / 4.0 및 iOS 7+에 대한 답변 :

let desiredOffset = CGPoint(x: 0, y: -self.scrollView.contentInset.top)
self.scrollView.setContentOffset(desiredOffset, animated: true)


답변

iOS7에서는 iOS6에서 작동하는 특정 스크롤보기를 맨 위로 가져 오는 데 어려움이 있었고 이것을 사용하여 스크롤보기를 맨 위로 이동했습니다.

[self.myScroller scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO];