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];