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

조회수 5446회

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

  • (•́ ✖ •̀)
    알 수 없는 사용자

2 답변

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

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

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

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

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)