작성
·
369
1
보통 view의 constraints를 정해줄 때, 전부 0으로 설정하면 superview의 크기에 따라서 view의 크기(width, height)도 조정 되는데, 왜 scrollview안에서는 따로 width를 설정해주지 않으면 view의 크기가 늘어나지 않나요?
답변 5
1
안녕하세요.
scrollView안에 있는 object들로 scrollView안에 contentView의 영역의 크기가 결정이 되는데
여기서 일반 view에서 작동되는것과는 조금 다른 부분이 contentView 자체가 스스로 크기를 정하는게 전혀 없습니다.
그 의미는 object들에 의해서 contentView는 아주 작거나 아주 크게 크기가 결정되어 진다는 뜻입니다.
그런 특성이 contentView에 있기 때문에 안에있는 object의 width값이 없다면 기본크기로 설정되는게 기본 개념입니다.
만약 이미지라면 이미지 크기만큼 설정되고, Label이라면 텍스트 길이만큼 설정되겠죠.
질문의 화면에서 작게 보이는건 해당object의 width값이 그것밖에 안되는 크기이기 때문이라고 이해하시면 됩니다.
그러므로 기본적인 크기 이상으로 설정하고 싶다면 그에 맞는 width값이 필요하게 됩니다.
contentView의 크기결정은 항상 스스로 되지 않고 안에 있는 object로 결정된다는 것만 잘 기억하시면
왜 저렇게 동작하는지 잘 이해하시게 될 걸로 생각됩니다.
1
안녕하세요
scrollView의 특징은 scrollView안에 contentView라는 공간 개념이 존재 합니다.
이 contentView의 크기가 scrollView의 크기보다 크면 스크롤 되면서 화면을 볼 수 있는 거고요.
이 때 scrollView는 안에 있는 오브젝트들은
오직 scrollView안에 있는 contentView의 크기만 결정짓게 됩니다.
그래서 scrollView안에 있는 오브젝트들로는 scrollView의 크기와 상관없이 contentView의 크기만 정하므로
scrollView의 크기를 정하라는 에러가 나오게 되는거죠.
그러므로 scrollView 자체의 크기를 어떤 방식이건 정해야 합니다.
그래서 보통 scrollView를 고정된 크기로 하거나 부모뷰의 크기로 잡거나 하게 됩니다.
0
0
0
답변 감사합니다.
우선 왼쪽 controller와 같이 scrollView가 아닌 그냥 View(superView)안에서 회색 view의 constraints를 전부 0으로 주어 superView에 맞추었을 때 뷰의 크기가 자동으로 맞춰서 늘어나는데, 오른쪽 scrollView안의 회색 view의 경우 constraints를 전부 superView로 맞춰어 놨는데도 불구하고 왜 width를 safeArea나 최상위 View 에 맞춰야만 크기가 늘어나는지 궁금합니다.
안녕하세요
정사이즈라는 말씀은 이미지 원래 크기로 들어간다는 말씀이신가요?
width와 height를 설정하지 않으면 이미지의 원래 크기로 들어가게 됩니다.
원하는 크기로 맞추기 위해서는 width와 height설정이 필요합니다.