2017-03-01 4 views
0

저는 autolayout을 사용하고 텍스트 필드를 서로 정렬했습니다. 하지만 이제는 전체 앱이 준비되었으므로 한 텍스트 필드를 제외한 모든 콘텐츠가 숨겨지는 특수한 경우가 있습니다. 따라서이 텍스트 필드를 .frame.origin.y로 이동하십시오.자동 레이아웃 전에 .frame.origin.y를 실행하는 방법이 있습니까

autolauout이 먼저 작업하기 때문에이 텍스트 필드가 중간에 나타납니다. autolayout을 완전히 끄고 싶지는 않습니다. autolauout 전에 누군가에게 그렇게하고 싶습니다.

나는 viewDidLayoutSubviews에 코드를 넣어 viewdidappear하고있는 viewDidLoad

답변

1

의 시작을 시도했다. 자동 레이아웃이 적용되는 순간입니다. 조건을 사용하여 코드가 올바른 조건에서만 실행되는지 확인하십시오. viewDidLayoutSubviews은 앱 수명 기간 동안 여러 번 호출 될 수 있으며 그 중 대부분은 특별한 작업을 원하지 않을 것이기 때문에 조건을 사용하십시오.

frame.origin.y을 변경하면 자동 할당 제약 조건과 충돌이 발생합니다. 이런 종류의 작업을 수행하는 올바른 방법은 제약을 변경하는 것입니다. 코드에서 참조 할 수 있도록 콘센트를 원하는 제약 조건으로 구성해야합니다. 그런 식으로 제약 조건을 constant으로 바꿀 수 있습니다.

+0

고맙습니다 ... 그게 내가 찾고있는 것입니다. 즉석에서해야했다. –