오토레이아웃 비율로 나뉘어서 위치하는 방법이 있을까요?(ex. 디바이스의 세로 1/3지점에 위치)
조회수 5446회
-
(•́ ✖ •̀)
알 수 없는 사용자
2 답변
-
- 먼저 서브 뷰를 슈퍼뷰로 ctrl + 드래그하면 아래와 같은 메뉴가 나옵니다.
그리고 EqualHeights를 선택
생성한 EqualHeightsConstraints의 설정을 아래와 같이 1:3으로 한 후
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
- 먼저 서브 뷰를 슈퍼뷰로 ctrl + 드래그하면 아래와 같은 메뉴가 나옵니다.
-
안녕하세요.
아래 글에 상대적인 비율에 따라 위치를 잡는 방법이 나와 있습니다.
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사이의 소수를 입력하면 됩니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력