[ios] Xcode-프레임을 잃지 않고 한 뷰에서 다른 뷰로 컴포넌트를 드래그하는 방법이 있습니까?

내가하고 싶은 것은 프레임 / 위치를 재설정하지 않고 Xcode의 인터페이스 빌더에서 한 수퍼 뷰에서 다른 수퍼 뷰로 컴포넌트 / 뷰를 드래그하는 것입니다.

이 작업을 수행 할 때 Xcode의 기본 동작은 크기를 유지하면서 새로운 수퍼 뷰에서 수직 및 수평으로 이동되는 뷰를 중앙에 배치하는 것 같습니다. 새로운 수퍼 뷰에서 뷰의 위치를 ​​수동으로 변경해야하기 때문에 매우 실망 스럽습니다. 하지만 이동하기 전에 올바르게 배치 했으므로 Xcode가 너비 / 높이 대신 프레임의 모든 속성을 기억하기를 원합니다. 이것이 가능한가?



답변

또 다른 해결책 :

  1. 하위보기에서 원하는 항목을 선택한 다음
  2. (도구 모음에서) 편집기> 포함> 포함 할보기 유형.


답변

여러분에게 도움이 될만한 것을 찾았습니다!

작업은 “하위보기”를 “상위보기”로 다시 그룹화하여 계층 적으로 상위보기의 하위가되고 작업 전과 같이 디스플레이에 물리적 위치를 유지하는 것입니다.

먼저 부모보기를 조정하여 자식보기 영역을 물리적으로 덮습니다. 둘째, 모든 어린이가보기 목록에서 아래에 있는지 확인하십시오.

이제 마우스로 모든 자식을 선택하고 예를 들어 한 픽셀 위로 이동하고 한 픽셀 아래로 이동합니다 (IB에 약간의 변화가 있다고 말하면). 그 석방 후 아이들은 마술처럼 부모의 자식이되어 그들의 위치를 ​​계속 보여줄 것입니다.

OSX 10.8.2 및 Xcode 4.6에서 작동합니다.

행운을 빕니다!


답변

나는 물건을 재배치하는 데 드는 많은 시간을 절약 할 수 있었고 이렇게했습니다.

  1. 인터페이스 빌더의 상위보기를 하위보기와 동일한 수준에 추가합니다.
  2. 텍스트 편집기에서 스토리 보드를 열고 상위보기의 하위보기 태그 안에있는 하위보기를 복사합니다. 저장하면 XCode가 업데이트됩니다.

하지만별로 우아하지는 않지만 XCode가 Shift 등으로 지원하지 않는 이유를 알 수 없습니다.


답변

  1. 한 UIView에서 다른 UiView (하위가 아님) 또는 ScrollView로 이동하려는 모든 컨트롤을 선택합니다.

  2. 잘라 내기 / 복사

  3. 이제 새 UIView / ScrollView를 기존 UIView로 드래그 한 후 한 번 클릭하여 선택하지 말고 대신 새 UIView / ScrollView를 두 번 클릭하고 모든 컨트롤을 붙여 넣습니다.

  4. 거리 차이는 모든 컨트롤간에 동일하게 유지되지만 컨트롤 위치를 다시 조정해야 할 수도 있습니다. 따라서 위치를 변경할 때까지 아무 곳이나 클릭하지 말고 모든 컨트롤이 이미 선택되어 있으므로 탐색 화살표로 모든 컨트롤의 위치를 ​​변경하거나 다시 선택해야 할 수 있습니다.

참고 : 나는 XCode 4.2에서


답변

스토리 보드를 사용하지 않고 Stepan의 솔루션과 유사한 작업을 수행했습니다. ViewController의 뷰가 열려있는 동안 IB에서 :

  1. VC의 기본보기 외에 다른보기 만들기
  2. 모든 하위보기를 한보기에서 다른보기로 드래그하여 두 번째보기로 이동합니다 (왼쪽 목록에서 드래그하면 위치가 재설정 됨). IB에서 마우스를 사용하여 선택할 수없는 경우 왼쪽 목록에서 모두 선택합니다. “cmd”버튼을 사용하여 IB 패널에서 하나의 최종 하위보기를 선택합니다.
  3. 초기 기본보기의 최종보기로 되돌립니다.
  4. 추가 된보기를 모두 제거합니다.


답변

이것은 하위 뷰를 다른 뷰로 복사하고 위치를 유지하는 가장 좋은 솔루션입니다.

  1. 하위보기에서 원하는 항목을 선택한 다음
  2. 편집기-> 삽입 위치->보기
  3. 이보기 복사 (Cmd + C)
  4. 실행 취소 (Cmd + Z) (하위보기를 원했기 때문에)
  5. 하위보기를 원하는보기로 이동하여 붙여 넣기 (Cmd + V)
  6. 복사하여 붙여 넣은 Embedding View를 선택하고 Editor-> Unembed

6 단계는 임베딩 뷰를 제거하고 하위 뷰만 복사합니다.


답변

Xcode Interface Builder는 부모 뷰를 다른 뷰 (UIView, ScrollView, StackView)로 끌어다 놓을 때 엉망이됩니다.

Q :
뷰 (다른 많은 하위 뷰가 포함되어 있음)를 ScrollView 또는 다른 최상위 뷰에 포함하는 것은 지금까지 본 것과 간단하지 않습니다. 곧 발생하는 일은 원래 프레임을 찾을 수 없기 때문에 모든 하위 뷰가 잘못 배치 된 것처럼 보일 수 있다는 것입니다.

A :
다음 단계를 따르시면 가능한 한 쉽게 해결할 수 있습니다.

  1. 하위보기에서 원하는 항목을 선택한 다음
  2. 메뉴 바, 편집기-> 포함->보기로 이동합니다.
  3. 이 새 뷰 (Cmd + C)를 하위 뷰와 함께 복사합니다 (현재 모든 제약 조건은 지금까지 유지되었습니다).
  4. 하위보기를 포함 할보기 (ScrollView 또는 StackView 일 수 있음)로 이동하고 복사 된보기를 붙여 넣습니다 (Cmd + V).
  5. 붙여 넣은 Embedding View (이전에 새로 생성 한)를 선택하고 Xcode, Editor-> Unembed 메뉴 바로 이동합니다.

아니요, 아직 끝나지 않았습니다! 때로는 UI 제약과 관련된 문제가 거의 없다는 것을 경험할 수 있으며 그에 따라 문제를 해결해야합니다.