우선 TableView는 테이블 뷰 셀을 재사용하여, 보여줘야 할 데이터의 구조를 "재활용"하는 방식을 사용한다.
이는 TableView의 굉장히 큰 장점인데, 데이터가 엄청나게 많아도
TableView는 화면을 채울만큼만 인스턴스를 생성하기에 메모리 용량 걱정을 하지 않아도 되기 때문이다.
하지만 셀을 "재사용"하는 것은 TableView의 단점이기도 하다.
우선 사용했던 셀을 다음 줄에서도, 그 다음 줄에서도, 10번째 줄에서도 계속 똑같이 사용하기 때문에
각각의 셀의 구성이나 형태를 다르게 만들고자 할 때에는 TableView가 적합하지 않다.
그림을 통해 자세히 알아보자.
이미지, 두꺼운 폰트, 작은 글씨체의 셀이 계속 반복되는 것을 확인할 수 있다.
TableView는 사용했던 셀을 다시 "재사용"하기 때문에 셀의 형태와 구성은 동일하다.
반면에 다음과 같은 그림을 보자.
위의 날씨 앱을 보면 각각의 구성요소가 모두 형태가 다른 것을 확인할 수 있다.
첫 번째 영역은 날씨 Label만 존재하고, 두 번째 영역은 여러 날씨 데이터를 가로로 스크롤하여 확인할 수 있게끔 되어있으며
세 번째 영역은 여러 날씨 데이터를 세로로 스크롤하여 확인할 수 있다.
따라서 위와 같은 날씨 앱은 "셀을 재활용하는 방식을 채택한 것이 아닌" 각각의 객체들이 서로 다른 형태를 띄도록 만들어준 것이다.
이 때 사용되는 방법이 바로 ScrollView와 StackView의 조합을 이용하는 것이다.
ScrollView와 StackView를 조합하여 TableView처럼 세로로 스크롤할 수 있게 만들되,
셀을 재활용하여 반복되는 셀을 사용하는 것이 아닌 "각 객체의 구성요소가 서로 다르게끔" 만들어줄 수 있다.
방법은 다음과 같다.
각각의 객체가 서로 다른 형태를 띄고 있는 것을 확인할 수 있다.
정리하자면 재사용셀을 사용해야 하거나 받아야할 데이터가 너무 많을 때엔 TableView를 사용하고
재사용셀을 사용하지 않고 서로 다른 여러 객체들을 띄워야 할 때에는 ScrollView + StackView 조합을 사용하면 된다.