2014-06-05 2 views
0

if 문에 따라 자동 레이아웃을 사용하여 프로그래밍 방식으로 버튼의 위치를 ​​변경하려고합니다. 자동 레이아웃을하기 전에 내가 무엇을하고 있었는지 궁금해하고 자동 레이아웃을 켜면 왜 작동하지 않는지 잘 모르겠습니다.자동 레이아웃을 사용하여 프로그래밍 방식으로 버튼 위치 설정

if ([dayString isEqualToString:@"Wednesday"]) { 

     [Btn setFrame:CGRectMake(20,49,135,35)]; 
} 
else { 
    [Btn setFrame:CGRectMake(49,49,135,35)]; 
} 

도움 주셔서 감사합니다. 정말 감사.

답변

0

간단합니다. 자동 레이아웃과 프레임 설정은 서로 상반됩니다. 자동 레이아웃을 사용하는 경우, 자동 레이아웃은 사물의 프레임을 설정하고 사용자는 설정하지 않습니다.

더 정확하게 말하자면, 프레임을 설정하지만 자동 레이아웃이 나오고 레이아웃 할 때 제약 조건에 따라 프레임이 설정됩니다. 따라서 변경 사항이 무시되고 있습니다.

따라서 하나의 옵션은 코드에서 단추를 배치하는 제한 조건을 조작하는 것입니다.

또는 스토리 보드에서 버튼을 가져 와서 코드로 만들고 인터페이스에 삽입하는 것이 좋습니다. 그렇게하면 버튼이 자동 레이아웃의 영향을받지 않고 프레임을 설정할 수 있습니다.

+0

그렇다면 if 문을 사용하여 자동 레이아웃으로 버튼의 위치를 ​​설정하는 방법은 무엇입니까? 아니면 그렇게 할 수 없습니까? –

+0

제약 조건을 변경하거나 설정해야합니다. 또는 자동 레이아웃의 영향을받지 않도록이 버튼을 "보호"할 수 있지만 더 정교합니다. – matt

+0

스토리 보드에서이 작업을 수행합니까? 또는 .m로 끝낼 수 있습니다. –

관련 문제