deprecated/잡동사니

iOSInterviewquestions - Autolayout

lgvv 2022. 4. 2. 03:01

iOSInterviewquestions - Autolayout

 

목적 : 배울때는 잘했는데, 나이가 먹으니까 자꾸 까먹어서 아래 깃허브 글을 바탕으로 꾸준히 이론 공부를 하고자 함. 물론 설명은 내가 잘 아는게 목적이라 철저히 나를 이해시킬 수 있는 나의 언어로 작성.

 

작성일 : 2022년 4월 2일 

 - README: 추후에 수정이 있을 경우 아래에 날짜와 시각을 작성하고, 수정 내용을 간략히 정리해주세요.

예시)

(수정) oooo년 oo월 oo일 oo시 oo분 

 - 변경내용 : xxx에 대한 자료를 보강

 

✅ 공부의 기준이 되는 깃허브 글

https://github.com/JeaSungLEE/iOSInterviewquestions

 

GitHub - JeaSungLEE/iOSInterviewquestions: 👨🏻‍💻👩🏻‍💻iOS 면접에 나올 질문들 총 정리

👨🏻‍💻👩🏻‍💻iOS 면접에 나올 질문들 총 정리 . Contribute to JeaSungLEE/iOSInterviewquestions development by creating an account on GitHub.

github.com

 

 

✅ Autolayout

 

 

  • 오토레이아웃을 코드로 작성하는 방법은 무엇인가? (3가지)
    • Layout Anchor를 사용(제일 익숙한 방법이자, SnapKit을 사용하는 방법과 동일)
    • NSLayoutConstraint를 사용하는 방식
    • visual foromat language를 사용(시각적으로 정의하는 특이한 방식)
    • (참고) https://sueaty.tistory.com/174
  • hugging, resistance에 대해서 설명하시오.
    • hugging은 단어 뜻 그대로 누군가를 안아야한다고 생각하자. 따라서 누군가가 커져야 하는 경우 hugging priority가 높은 것이 작은것을 끌어 안는다. 즉, 우선순위가 높은 것이 자기 크기를 유지하고, 작은 것을 끌어 당긴다.
    • resistance은 단어 뜻 그대로 압축에 저항하자고 생각하자. 따라서 누군가가 작아져야 하는 경우 resistance priority가 높은 것이 압축에 대한 저항 강도가 더 쌔서 자신의 위치를 유지한다. 
  • Intrinsic Size에 대해서 설명하시오.
    • 컨텐츠의 본질적은 크기로 UI 요소들 중 일부는 기본적으로 Intrinsic Content Size를 갖고 있다. UILabel의 경우에는 Intrinsic Content Size를 갖고 있어서 런타임시에 UI가 변경되어서 그에 맞추어서 길이가 가변적으로 자동으로 바뀌는게 적용된다. 또한 width 및 height를 가지지 않아도 레이아웃 에러(경고와 다름)가 나지 않음.
    • (참고) https://babbab2.tistory.com/135
  • 스토리보드를 이용했을때의 장단점을 설명하시오.
    • 지극히 내 기준으로 작성함.
    • (장점) UI 한눈에 볼 수 있으며, 세그 연결 및 각각의 요소들에 속성을 쉽게 설정할 수 있다.
    • (단점) Xcode가 무거워지며, 협업에서 충돌로 인한 문제를 겪을 수 있음.
  • Safearea에 대해서 설명하시오.
    • 노치가 있는 기기가 출시되면서, UI가 노치에 의해서 가려지는 문제가 발생할 수 있게 되었음. SafeArea는 이 영역을 제외하고 UI가 온전하게 보일 수 있는 화면의 부분임.
  • Left Constraint 와 Leading Constraint 의 차이점을 설명하시오.
    • 애플은 공식적으로 left/right보다 leading/trailing을 권장하고 있음. reading direction에 영향을 받는데 우리나라는 (왼->오)이지만 어떤 나라는 (오->왼) 일수도 있음 left 는 reading direction에 관계없이 고정이고, leading은 이 방향에 맞춰짐 우리나라 기준으로 leading은 왼쪽