IB에서 UIView 크기를 조정할 수 없습니다.


88

아마도 간단한 일이지만 Interface Builder의 xib에서 UIView의 크기를 조정할 수없는 이유를 알 수 없습니다.

xcode와 크기 검사기에서 새로운보기 XIB를 만들었습니다. 너비와 높이가 비활성화되고 320 x 460으로 회색으로 표시됩니다. 다른 두보기의 크기를 변경할 수 있기 때문에 이상합니다 (다른 두 개의 탭 막대와 연결됨). 항목).

이것이 관련이 있는지 확실하지 않지만 최근에 sdk를 3으로 업데이트했습니다.

감사!

답변:


81

Interface Builder의 상태 표시 줄과 같은 사용자 인터페이스 요소를 시뮬레이션하는 동안 크기를 편집 할 수 없다고 생각합니다. 활성화 된 경우 시뮬레이션 된 요소를 끌 수 있습니다. 그 이유를 정확히 알지 못하므로 그 이유를 정확히 아는 사람의 피드백에 감사드립니다. 그럴만 한 이유가 있어야합니다.


1
감사합니다. xcode와 IB를 업그레이드 한 후 상태 표시 줄이 기본적으로 켜져있었습니다. 다른 사람들은 꺼져 있습니다.

1
Xcode 4.2, iOS 5.0.1에서 변경되었습니다. 아래 내 대답은 이것이 어떻게 달성 될 수 있는지 설명합니다.
lol

1
매우 유용합니다. 상태 표시 줄을 끄고 크기를 조정 한 다음 상태 표시 줄을 다시 켜십시오.
Wollan 2012

9
이 설정은 Xcode 4.3.3 : "시뮬레이션 된 메트릭-크기 : 자유 형식"의 ViewController.xib에서 작동했습니다. 그 후보기 크기 설정이 활성화됩니다. 또한 "보기 모드"채우기 옵션 (시뮬레이션 된 메트릭 바로 아래)을 제거합니다.
defvol 2013-08-18

uuuugh 난 정말이 IDE 싫어하는
Saik 캐 스키

80

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

  1. '파일 검사기'에서-> 선택 해제 Use Auto Layout
  2. 속성 선택기를 클릭하고 Freeform크기를 선택하십시오.

이것은 tableView에 대한 headerView를 만들 때 필요합니다.

여기에 이미지 설명 입력


40

찾고있는 부분은 첫 번째 Inspector 패널 (Command-1)에 있습니다. 오른쪽 상단에는 Simulated User Interface Elements라는 레이블이 붙은 섹션이 있습니다. 기본적으로 상태 표시 줄은 켜져 있습니다. 세 가지 모두 없음으로 설정되어 있는지 확인해야합니다.


2
감사합니다.이 답변으로 많은 시간이 절약되었습니다! IB가 왜 이런 일을하는지 아는 사람 있나요?
Gregor

고마워 친구. 나는 그것을 찾고 있었다.
natanavra

모두에게, 이것은 이제 없음 대신 "지정되지 않음"입니다. (저는 3.2.3 버전을 가지고 있습니다)
IcyBlueRose

iPad가 "Unspecified"임을 확인합니다. Thomas Mon에게 감사합니다. 몇 시간을 절약했습니다. : D
Qlimax 2011 년

보기가 아닌보기 컨트롤러에 대해서만 표시됩니다.
BigBoy1337

26

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

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


1
이제 크기 속성은 "Retina 4 전체 화면"으로 기본 설정되지만 "자유 형식"으로 변경해도 여전히 작동합니다.
Pier-Luc Gendreau 2013 년

4

인스펙터로 이동하여 첫 번째 패널로 이동 (또는 command-1을 누름) 한 다음 "시뮬레이션 된 사용자 인터페이스 요소"섹션에서 상태 표시 줄, 상단 표시 줄 및 하단 표시 줄로 표시된 필드를 없음으로 변경하십시오. 작은 삼각형을 클릭해야 볼 수 있습니다.


1

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

#define RECTLOG (rect) (NSLog (@ ""#rect @ "x : % fy : % fw : % fh : % f", rect.origin.x, rect.origin.y, rect.size.width, rect .size.height));

viewDidLoad 내

-(무효) viewDidLoad {
    [super viewDidLoad];
    RECTLOG (self.view.frame);
}

IB에서로드 된 뷰는 실제로 (0, 20, 320, 480)입니다. 해결 방법으로 self.view.frame = CGRectMake (0, 0, 320, 480)를 사용하여 뷰의 프레임을 재설정했습니다.

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

이 문제에 대한 약간의 수정 사항을 알고 싶습니다.


3
참고로 NSStringFromCGRect (rect)를 사용하여 CGRect를 나타내는 인쇄 가능한 문자열을 얻을 수 있습니다.
Berry

그것은 훌륭한 FYI였습니다. 저는 그것을 확인했고 실제로 CGPoint와 CGSize에서도 문자열 값을 얻을 수 있습니다! 매우 요리사, 감사합니다.
FierceMonkey

1

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

내가 한 것은 다른 UIView를 추가하고 이전 UIView에서 새 UIView로 모든 것을 드래그 한 다음 이전 UIView를 삭제하는 것입니다.

그것은 나를 위해 문제를 해결했지만 예, Apple이 해결할 인터페이스 빌더에 근본적인 문제가 있다고 생각합니다 (내가 틀리면 누군가 나를 고쳐줍니다).

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


0

나는 그것을 다른 방식으로 분류했다 ...

좋아하는 텍스트 편집기로 xib를 열고이 줄을 편집하십시오.

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

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

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


0

여기에 이미지 설명 입력스토리 보드에서 UIVIew를 선택하고 속성 관리자로 이동하여 UIVIew 크기를 "추론 됨"대신 "FreeForm"으로 변경합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.