💻

UIScrollView 콘텐츠 오른쪽 정렬하기

joho2022 2024. 12. 22. 03:34

오른쪽 정렬을 하고 싶었음..

 

 

영상 1

 

 

배경

노란색 배경색은 ScrollView이고,

안에 Label이 들어가 있는 모습이다.

 

나는 숫자가 입력될 때 오른쪽 끝에 정렬되도록 설정되기를 원한다.

사용자는 긴 내용을 스크롤을 통해 확인할 수 있도록 말이다.

 

그런데 현재 라벨은 스크롤뷰에 맞춰서 제약조건이 설정된 상태인데,

좌측에서 우측으로 어떻게 바꾸는지를 정리할려고 한다.

 

 

크게 2가지 방법이 있는데,

contentOffset VS contentAlignmentPoint

처음에 contentOffset 으로 기존에 있는 방식으로 적용할려다 보니,

수동 계산이 많이 필요로 하고,

나는 숫자 입력될 때마다 변화가 일어나길 원하는데,

그럴 때마다 계산로직이 필요로 했다.

 

그래서 더 쉽고 내가 원하는 결과를 이끌어낼 수 있는 방법을 찾다가

contentAlignmentPoint 

확인할 수 있었다.

 

새롭게 나온 방식으로,

스크롤 뷰의 프레임보다 작은 콘텐츠를 스크롤 뷰가 고정하는 지점이라고 설명을 나타낸다.

 

즉, UIScrollView의 콘텐츠를 정렬할 위치를 비율로 설정하는 것이다.

기존 방식보다 더욱더 직관적으로 정렬할 수 있도록 도와준다.

 

가로축을 기준으로,

스크롤 뷰의 콘텐츠 좌표계를 기준으로 위치를 설정한다.그래서

 

스크롤뷰인스턴스.contentAlignmentPoint.x = 0 // 콘텐츠 왼쪽 정렬
스크롤뷰인스턴스.contentAlignmentPoint.x = 0.5 // 콘텐츠 중앙 정렬
스크롤뷰인스턴스.contentAlignmentPoint.x = 1 // 콘텐츠 오른쪽 정렬

코드는 단순하지만, 화면 크기가 바뀌거나 레이아웃을 바꿔도 비율로 처리하기 때문에

원하는 결과를 얻을 수 있게 된다.

 

그래서 1로 설정하게 되면,

나이스~