티스토리 뷰

Swift&IOS

StackView + ScrollView

밀쿄 2020. 1. 2. 14:02

안녕하세요 밀쿄입니다.

오늘은 제목에서 알 수 있듯이 StackView + ScrollView의 조합에 대해서 살펴보겠습니다.

이렇게 사용하면 스택뷰의 높이에 따라서 자동으로 스크롤되는 화면을 쉽게 만들 수 있습니다.

바로 코드를 보겠습니다.

        let scrollView = UIScrollView()
        view.addSubview(scrollView)
        scrollView.translatesAutoresizingMaskIntoConstraints = false
        NSLayoutConstraint.activate([
            scrollView.widthAnchor.constraint(equalTo: view.safeAreaLayoutGuide.widthAnchor),
            scrollView.heightAnchor.constraint(equalTo: view.safeAreaLayoutGuide.heightAnchor),
            scrollView.centerXAnchor.constraint(equalTo: view.safeAreaLayoutGuide.centerXAnchor),
            scrollView.centerYAnchor.constraint(equalTo: view.safeAreaLayoutGuide.centerYAnchor)
        ])
        
        let stackView = UIStackView()
        stackView.axis = .vertical
        stackView.distribution = .fillEqually
        self.stackView = stackView
        scrollView.addSubview(stackView)
        stackView.translatesAutoresizingMaskIntoConstraints = false
        NSLayoutConstraint.activate([
            stackView.topAnchor.constraint(equalTo: scrollView.topAnchor),
            stackView.leadingAnchor.constraint(equalTo: scrollView.leadingAnchor),
            stackView.trailingAnchor.constraint(equalTo: scrollView.trailingAnchor),
            stackView.bottomAnchor.constraint(equalTo: scrollView.bottomAnchor)
        ])

코드로 짜서 그렇지 별 거 없습니다.

스크롤뷰의 크기를 view의 safeAreaLayoutGuide의 크기랑 똑같이 맞추고 가운데로 설정해주고

그 안에 들어가는 스택뷰의 크기를 스택뷰랑 같게 설정해두었습니다.

간단하게 끝입니다.

'Swift&IOS' 카테고리의 다른 글

flatMap, compactMap  (0) 2020.01.10
rethrows  (0) 2020.01.09
translatesAutoresizingMaskIntoConstraints  (0) 2019.12.30
[AutoLayout] leading, trailing, left, right  (0) 2019.12.26
날짜 비교하기  (0) 2019.12.24
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함