programing

IB에서 UIView 크기를 조정할 수 없음

stoneblock 2023. 8. 7. 22:18

IB에서 UIView 크기를 조정할 수 없음

아마도 간단한 것이겠지만, 인터페이스 빌더의 xib에서 UIView 크기를 조정할 수 없는 이유를 알 수 없습니다.

xcode로 XIB 보기를 새로 만들었고, size inspector에서는 가로와 세로가 비활성화되고 460에 의해 320으로 회색으로 표시됩니다.다른 두 보기(다른 두 탭 모음 항목과 연결됨)에 대한 크기를 변경할 수 있기 때문에 이상합니다.

이것과 관련이 있는지는 모르겠지만 최근에 sdk를 3으로 업데이트했습니다.

감사합니다!

XCode 4.6.3/5.0.2에서 이를 달성하려면 아래 스크린샷을 따라야 합니다.

  1. '파일 검사기'에서 -> 눈금을 untickUse Auto Layout
  2. 특성 선택기를 클릭하고 선택합니다.Freeform사이즈용

표에 대한 헤더 보기를 작성할 때 필요합니다. 보기

enter image description here

인터페이스 빌더의 상태 표시줄과 같은 사용자 인터페이스 요소를 시뮬레이션하는 동안에는 크기를 편집할 수 없다고 생각합니다.시뮬레이션된 요소가 활성화된 경우 이 요소를 해제할 수 있습니다.이유를 정확히 알 수 없기 때문에 이유를 정확히 알고 있는 사람이라면 누구나 좋은 이유가 있을 것입니다.

찾으려는 부품은 첫 번째 검사자 패널(명령-1)에 있습니다.오른쪽 상단에는 모의 실행 사용자 인터페이스 요소라는 섹션이 있습니다.상태 표시줄은 기본적으로 켜져 있습니다.세 개 모두 없음으로 설정해야 합니다.

Xcode 4.2, iOS 5.0.1에서와 같이 기본 시뮬레이션 메트릭에는 UIViewControllers의 'size' 특성을 'Inferred'로 시뮬레이션하는 기능이 포함됩니다.

이 속성을 'Freeform'으로 변경하면 UIView 컨트롤러에 포함된 UIView의 크기를 조정하는 동시에 상태 표시줄(또는 해당 문제에 대한 다른 시뮬레이션)을 시뮬레이션할 수 있습니다.

검사자로 이동하고 첫 번째 패널로 이동한 다음(또는 명령-1을 누릅니다) "모의 사용자 인터페이스 요소" 섹션에서 상태 표시줄, 상단 표시줄 및 하단 표시줄이 표시된 필드를 없음으로 변경합니다.작은 삼각형을 클릭하여 표시해야 할 수도 있습니다.

저도 비슷한 문제가 있다는 게 웃기네요.xib 파일에서 모든 뷰를 제거하고 뷰를 다시 추가했습니다.상태 표시줄을 "지정되지 않음"으로 설정하여 상태 표시줄이 수용되지 않도록 합니다.뷰가 추가되면 예상했던 대로 (0,0,320,440)이 아닌 x=0, y=0, w=320h=460으로 생성됩니다.높이를 480으로 변경하여 파일 소유자에게 연결하고 배경과 관련하여 구별되도록 색상을 변경한 후.화면 상단과 보기 사이에 흰색 띠가 있다는 것을 발견했습니다.다음을 통해 코드를 확장했습니다.

#define ROTLOG(rect)(NSLog(@" #rect @" x:%fy:%f w:%f:%f", rect.origin.x, rect.origin.y, rect.size.폭, rect.size.height );

뷰 내 DidLoad

(void)DidLoad { 보기[superviewDidLoad];RCTLOG(self.view.frame);
}

IB에서 로드된 상태의 뷰는 실제로 (0, 20, 320, 480)입니다. 주변 작업으로 self.view.frame = CGRectMake(0, 0, 320, 480)로 뷰 프레임을 재설정했습니다.

IB 3.2.5를 사용하고 있습니다.

이것에 대한 약간의 해결책을 알고 싶습니다.

xib 파일을 만들 때 자동으로 생성되는 UIView는 크기 조정 패널이나 가장자리 핸들에서 크기를 조정할 수 없습니다.

제가 한 일은 다른 UIView를 추가하고 이전 UIView의 모든 것을 새 UIView로 끌어다 놓은 다음 이전 UIView를 삭제한 것뿐입니다.

그것은 저에게 문제를 해결했지만, 네, 애플이 해결해야 할 인터페이스 빌더에 근본적인 문제가 있다고 생각합니다(제가 틀렸다면 누군가 수정해주세요).

저는 XCode 4 통합 인터페이스 빌더를 사용하고 있습니다.

제가 다른 방법으로 정리해 봤는데요

좋아하는 텍스트 편집기로 xib를 열고 이 줄을 편집합니다.

        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="CompassViewController">

CompassViewController닙/xib를 연결하려는 클래스 이름입니다.

올바른 클래스 이름으로 클래스 이름을 편집하기만 하면 완료됩니다 ;)

스토리보드에서 UIVIew를 선택하고 속성 검사자로 이동하여 UIVIew 크기를 "Inferred"가 아닌 "FreeForm"으로 enter image description here변경합니다.

Xcode 13에서

스토리보드 -> 속성 검사기 -> 크기 -> 자유형

enter image description here

언급URL : https://stackoverflow.com/questions/1087676/cant-resize-uiview-in-ib