Search

[정리] SOPT 27기 2주차 과제 정리

ViewController
class ViewController: UIViewController, UIScrollViewDelegate { @IBOutlet weak var scrollView: UIScrollView! @IBOutlet weak var topButton: UIButton! override func viewDidLoad() { super.viewDidLoad() scrollView.delegate = self } func scrollViewDidScroll(_ scrollView: UIScrollView) { if(scrollView.contentOffset.y > (scrollView.contentSize.height - scrollView.frame.size.height) / 2) { topButton.isHidden = false } else { topButton.isHidden = true } } }
Swift
복사
scrollViewscrollViewDidScroll에서 사용하기 위해서 UIScrollViewDelegate를 Delegate한다.
사용할 scrollView에 처음 view가 생성될 때 delegate한다.
scrollView가 움직일 때 content offset이 변경되는 데 그 offset의 y부분은 scrollView.bounds.origin.y와 같다.
해당 content offset이 전체 스크롤뷰의 반 이상으로 내려오면 topButton이 보여지고 아니면 보이지 않게 한다.
@IBAction func touchUpTop(_ sender: Any) { topButton.isHidden = true scrollView.setContentOffset(CGPoint(x: 0, y: 0), animated: true) }
Swift
복사
topButton를 누르면 보이지 않게 한다. top 부분에 도달했을 때는 버튼이 보이지 않기 때문이다.
setContentOffsetUIScrollView에서 특정 위치로 scroll할 때 사용된다.
x축으로는 스크롤할 필요가 없기 때문에 0으로 해주고 맨 위로 이동할 것이기에 y축도 0으로 맞춰준다.