본문 바로가기
swift

UIScrollView

by 승환파크 2024. 6. 21.

 

UIScrollView

스크롤뷰의 기초 속성

  • Vertical ScrollView : 세로로 스크롤하는 스크롤 뷰
  • Horizontal ScorllView : 가로로 스크롤하는 스크롤 뷰

 

스크롤 뷰 구현

스크롤 뷰를 구현하기 위해서는 스크롤 뷰에 들어갈 contentView 가 필요하다.

contentView : 스크롤 뷰 내부에서 실제로 스크롤 되어질 대상의 뷰를 말한다.

 

1. 스토리보드에 UIScrollView 생성

 

2. 스크롤 뷰 안에 UIView 생성

  • 이것이 cntentView 이다.
  • contentView 의 leading, trailing, top, bottom 은 scrollView.contentLayoutGuide 와 같게 설정한다.
  • VerticalScrollView 를 만들기 위해서는 height 를 같게 설정한다.
  •  contentView 본인의 height 를 설정한다. -> priority 250 으로 설정

3. 이번 예제에서는 컨텐트뷰에 다양한 색상의 뷰를 랜덤하게 노출하는 스택 뷰 구성.

  • contentView 안에 StackView 생성
  • 이 stackView 는 contentView 와 constraint 를 맞춰서 설정해준다.

 

스택뷰를 ctrl 을 누른채로 드래그해서 스토리보드에서 ViewController.swift 로 드랍한다.

이름은 verticalStackView 로 지었다.

 

4. 스택 뷰 내부에 자동으로 10개의 랜덤한 색상의 뷰를 생성하는 코드 작성

// ViewController.swift

import UIKit

class ViewController: UIViewController {
    
    @IBOutlet weak var verticalStackView: UIStackView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        configureStackView()
    }
    
    
    private func configureStackView() {
        for _ in 0..<10 {
            let randomView = randomColoredView()
            verticalStackView.addArrangedSubview(randomView)
        }
    }
    
    // 랜덤 색상을 가진 뷰 생성 함수.
    private func randomColoredView() -> UIView {
        let view = UIView()
        view.backgroundColor = UIColor(
            red: .random(in: 0...1),
            green: .random(in: 0...1),
            blue: .random(in: 0...1),
            alpha: 1.0
        )
        view.heightAnchor.constraint(equalToConstant: 200).isActive = true
        return view
    }
 }

 

실행하면 스크롤 뷰가 완성된다.

'swift' 카테고리의 다른 글

UIViewController 생명주기  (3) 2024.07.09
UISegmentedControl  (0) 2024.07.03
UIStackView  (0) 2024.06.21
UIView  (0) 2024.06.21
UIImageView  (1) 2024.06.21