티스토리 뷰

반응형


안녕하세요 :) Zedd입니다.

애플 이벤트..요약을 봤는데 

ㅁ.........


ㅋㅋ와치가 젤 웃김

와치에 나침반이 들어가게 됩니다 (두둥)


외국은 나침반이 좀 특별한가..?

한국은 진짜 어쩌라고자나요


됐고



드뎌 Xcode 11 GM이 나왔다는 사실!


베타 띠가 없어져따


iOS 13은 9월 19일에 릴리즈가 된대용

13.1...이겠지..?


연휴에는 좀 못했던 개인 공부들을 좀 하려고...합니다.

이래놓고 지켜진 적이..별로 없었던것 같은데

과연?


아 마저 그리구 글 하나 쓸 때 노래 하나씩 추천해줄려고 그랬는데, 어쩔땐 추천해주고...또 어쩔땐 까머금

내가 추천해준 노래를 누군가가 좋다고 느낀다면 정말 짜릿하지 않나요

오늘 제가 추천하는 노래는 ROOKIES, New Hope Club - Paycheck 이라는 노래에요 XD

하이라이트 부분이 굉장히 좋고..가사도.........

If I had 10 million dollars then I would do what I wanna
But hell, I'm always just waiting for my paycheck


...


시작하겠슴



adjustedContentInset



contentInset은 저번에 공부했는데

adjustedContentInset? 

조정된...ContentInset...???


adjustedContentInset은 iOS11부터 나온 UIScrollView의 프로퍼티인데요,

정의는 ContentInset과 scrollView의 safe area로부터 나온 inset......



adjustedContentInset은 contentInset과 마찬가지로 UIEdgeInsets타입이에요.

같은 타입이지만 다른점은..contentInset은 get, set둘 다 할 수 있었지만, 

adjustedContentInset은 get밖에 할 수 없습니당. ReadOnly!


일단 adjustedContentInset은



contentInset + system inset입니다.

contentInset은 우리가 ScrollView에 줄 수 있ㄲ는 값이었죠.

근데 system inset..? 얜 머야


이 친구는 contentInsetAdjustmentBehavior로 결정되는 값입니다.

contentInsetAdjustmentBehavior를 공부해봅시다.



contentInsetAdjustmentBehavior



직독직해 ㄱ

contentInset / Adjustment / Behavior

contentInset / 조정 / 행동

contentInset을 조절하는 행동.......이 있나봅니다.


contentInsetAdjustmentBehavior의 정의는 

"The behavior for determining the adjusted content offsets." 

adjusted content offsets을 결정하기 위한 동작(행동)입니다.


이친구의 타입은 ContentInsetAdjustmentBehavior < 라는 enum타입이에요. 

ContentInsetAdjustmentBehavior는 adjusted content inset에 safe area inset이 어떻게 추가될지를 나타내는 상수(contstant)라고 해요.


이렇게 4가지 케이스가 있으며 기본값은 가장 위의 automatic입니다.

 automatic부터 보도록 할게요. 


automatic은 이름에서 볼 수 있듯이, 뭔가 자동으로 해주는것 같죠?

맞습니다.

정의는 


"자동으로" scrollView inset을 조정해줍니다.

자동으로 scrollView inset 조정해준다는게 먼말이야;;


자, scrollView가 현재 navigation 또는 tab bar controller에 display되는 경우, 컨텐츠는 항상 수직(vertically)으로 조정됩니다. 만약 scrollView가 horizontally scrollable이고 safe area inset이 0이 아닌 경우, horizontal content offset도 조정됩니다.


그림으로 살펴봅시다.



scrollView안에 imageView를 넣어봤습니다.

여기서 주목해야 할 것은 



제가 scrollView top과 bottom을 superView에 맞춰줬다는 것이죠.  물론 leading과 trailing도..


그러면 어떤일 남;?



safe area에 맞춰주지 않았으니, 



컨텐츠가 overlap됐군요

우리는 어케됐음 좋겠음



이렇게 됐음 좋겠자나요. 저 갈색뷰는 스크롤뷰...


사실 기본이 automatic이라..overlap될 일은....잘 없겠지만요. 

예제를 위해 overlap되게 해봤습니다. 


이러한 상황을 ContentInsetAdjustmentBehavior를 통해 해결 할 수 있는데요, 

automatic을 줘봅시다. 


짜잔~~마치 safe area에 맞춰준것처럼 딱 맞게 됐죠?  contentInset은 전혀 건들지 않았는데 말이죠.

systemInset이 조절된것입니다.


adjustedContentInset을 출력해보면,

이거 viewDidLoad에서 출력하면 0 나옴 ㅡㅡ 

여러분들은..viewDidLoad에서 출력하지 마세요....진짜 한참 헤맸음

저는 viewDidAppear에서 출력해줬습니다.



아니 Xcode 11에서 저거 왜 계속 나오지...

암튼 top이 44, bottom이 34가 됐죠.


contentInset은? 



zero입니다.


contentInset은 안바뀌었으니..contentOffset도 안바뀌었을까요? 


바뀌었군.........

사실 넌 안바뀌길 바랬다...당연히 바뀌어야 하느게 맞지만..

왜 -44가 나온지는 설명안할게요. adjustedContentInset의 top이 44이기 때문이겠죠?


아무튼 이게 automatic입니다.

내가 자동으로 해주께;;;;;;



두번째, scrollableAxes

정의는 스크롤가능한 방향(directions)으로만 inset을 조절해줍니다.



portrait일때는 잘 모르겠지만



landscape일때는 좌 우가 떨어져있지 않죠?

현재 스크롤 "가능한" 방향으로만 inset을 조정해준다는게 무슨 말인지 알겠죠?


세번째 never


더이상은..never..이친구 같은경우는 이름만봐도 알겠듯이..

scrollView inset을 조절하지 않겠다! 입니다. 

;;;망함

네 암튼 이런거구요. adjustedContentInset은 당연히 zero겠죠?


마지막 네번째! always입니다.

정의는 content 조정시, 항상 safe area inset을 포함한다! < 입니다.


아까 scrollableAxes랑은 다르게 왼쪽 오른쪽이 띄워져있죠?

항상 safe area inset을 줘서 생기는 일입니다. 


그럼 automatic은 왜


자동으로 해준다며 ㅠㅠ

왜 always처럼 안띄워주는거얌?..


그것은.......

automatic은 컨텐츠가 "scrollable"할때 inset을 주는 친구같아요.

정의중에서도 

"만약 scrollView가 horizontally scrollable이고 safe area inset이 0이 아닌 경우, 

horizontal content offset도 조정됩니다."

라고 그러니까..


textView가 예제로 너무 좋네;; textView로 다시 한번 봅시다. textView는 scrollView를 상속받고 있으니까요

컨텐츠가 스크롤 할만큼 충분하지 않을때, automatic은 inset을 주지 않는군요.

스크롤 할만큼의 컨텐츠가 나오니까 이제 떼줌...

automatic일때 좌우가 떨어지지 않는건, 지금 horizontal로 스크롤이 불가능하기 때문....

암튼 지금 상하좌우 스크롤이 가능한 상태인데,

이때 automatic을 주면, 마치 always옵션을 준거랑 똑같아 지게 됩니다.


아 이제 좀 알겠네 ㅡㅡ


ㅎㅎ...넘 늦게 알았지만.........그래도 지금이라도 안거에 만족...

이 글이 도움이 되었길 바랍니다.

틀린내용이 있다면 언제든지 지적 부탁드려요!!!!


모두들 추석 잘 보내세요 🌕🙏








반응형

'iOS' 카테고리의 다른 글

iOS ) Sign in with Apple (2)  (6) 2019.09.22
iOS 13 달라진 점!!  (4) 2019.09.20
iOS ) ContentInset  (2) 2019.09.08
iOS ) UITableViewCell / UICollectionViewCell의 View들  (1) 2019.09.04
iOS ) DecodingError  (1) 2019.08.25