오토레이아웃 비율로 나뉘어서 위치하는 방법이 있을까요?(ex. 디바이스의 세로 1/3지점에 위치)


오토레이아웃을 사용할때 서브 뷰가 디바이스의 1/3지점에 위치하도록 하는 방법이 있을까요 ?

  • 2016년 07월 27일에 작성됨

조회수 207


2 답변


좋아요
2
싫어요
채택취소하기
  1. 먼저 서브 뷰를 슈퍼뷰로 ctrl + 드래그하면 아래와 같은 메뉴가 나옵니다.
  2. 그리고 EqualHeights를 선택 이미지

  3. 생성한 EqualHeightsConstraints의 설정을 아래와 같이 1:3으로 한 후 이미지

  4. 1/3지점에 위치하고 싶은 서브뷰를 추가하여 위에서 추가한 서브뷰의 vertical margin을 0로 세팅하면 됩니다.

  • 2016년 07월 27일에 작성됨

  • 서브 뷰는 그냥 의미 없는 View를 넣은건가요?    JG   2016.7.27 17:09     
  • 네    gompro89   2016.7.27 17:13     
  • 만약 다른방법으로 한다면 SuperView의 top과 SubView의 top의 vertical Margin을 생성한 후 IBOutlet Constraints로 생성합니다. 그리고 IBOutlet을 생성한 소스내에서 constrains의 constant를 디바이스의 1/3의 값을 넣어주어도 됩니다. 그외의 방법은 저도 잘 모르겠네요.    gompro89   2016.7.27 17:14     
  • 위에서 말씀해주신대로 의미없는 view에 EqualHeightsConstraints만 1:3 으로 하면 x position, y position, x width를 추가하라고 나오는데 다른 옵션을 더 줘야하는게 있나요 ?    JG   2016.7.27 17:17     
  • 의미없는 view는 질문자님께서 생성하고 싶은 view의 y 위치를 설정하기 위한 기준 view이므로 다른 옵션은 필요없습니다.     gompro89   2016.7.27 17:26     

안녕하세요.

아래 글에 상대적인 비율에 따라 위치를 잡는 방법이 나와 있습니다.

https://medium.com/@lingostar/제-3장-multiplier를-이용한-위치-설정-1eb9147dd8e8#.tlvni6dwj

간단히 설명드리면,

Leading 과 Trailing을 기준으로 할때 Leading은 0 x Trailing 이며 Trailing은 1 x Trailing 이므로 0~ 1 사이의 소수를 입력하면 됩니다. Top과 Bottom을 기준으로 할 때 Top은 0 x Bottom 이며 Bottom은 1 x Bottom 이므로 0 ~ 1사이의 소수를 입력하면 됩니다.


로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close