2009-07-06 9 views
82

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

xcode와 크기 검사기에서 새보기 XIB를 만들었지 만 너비와 높이가 비활성화되어 320에서 460까지 회색으로 표시됩니다. 다른 두보기의 크기를 변경할 수 있으므로 이상합니다. 다른 두 개의 탭 표시 줄 항목).

나는이와 아무 상관이 있는지 모르겠지만 나는 최근 3

덕분에 SDK를 업데이트!

답변

78

인터페이스 빌더의 상태 표시 줄과 같은 사용자 인터페이스 요소를 시뮬레이션하는 동안 크기를 편집 할 수 없다고 생각합니다. 활성화 된 경우 시뮬레이션 된 요소를 사용 중지 할 수 있습니다. 이것이 정확히 왜 그런지는 모르겠지만, 이것이 정확히 이유를 알고있는 사람의 의견을 기꺼이 받아 들여야합니다. 좋은 이유가 있어야합니다.

+1

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

+0

여러분 모두에게 +1 .. !! –

+1

Xcode 4.2에서와 마찬가지로 iOS 5.0.1이 변경되었습니다. 아래 내 대답은 어떻게 달성 될 수 있는지 설명합니다. – lol

40

찾고있는 부분은 첫 번째 검사기 패널 (Command-1)에 있습니다. 오른쪽 상단에는 시뮬레이트 된 사용자 인터페이스 요소라는 레이블이 붙은 섹션이 있습니다. 기본적으로 상태 표시 줄은 켜져 있습니다. 세 가지 모두가 없음으로 설정되어 있는지 확인해야합니다.

+2

감사합니다.이 답변으로 저에게 많은 시간을 절약 할 수있었습니다! IB가 왜 이것을하는지 누가 알 수 있습니까? – Gregor

+0

+1 이것은 나를 미치게했습니다! 감사! – Bogatyr

+0

감사합니다. 나는 그걸 찾고 있었어. – natanavra

4

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

0

웃긴 비슷한 문제가 있습니다. xib 파일에서 모든보기를 제거하고보기를 다시 추가했습니다. 상태 표시 줄을 "지정되지 않음"으로 설정하여 상태 표시 줄을 조정하지 마십시오. 추가 된 뷰는 (0,0,320,480) 대신 x = 0, y = 0, w = 320 h = 460으로 생성됩니다. 높이를 480으로 변경하고 파일의 소유자에게 연결 한 후 배경색과 관련하여 색을 변경 한 후 나는 화면의 꼭대기와보기 사이에 하얀 띠가 있었다고 생각한다. 나는 내 코드를 증강 : viewDidLoad에

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

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

그것이 IB에서로드됩니다으로보기 실제로 주위에 작품으로 (0, 20, 320, 480) 되는 것을 밝혀 뷰의 프레임을 self.view.frame = CGRectMake (0, 0, 320, 480)로 재설정했다.

나는이 일에 대한 약간의 수정을 알고 싶어요 IB 3.2.5

을 사용하고 있습니다.

+3

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

+0

그게 좋은 FYI 였어, 내가 조사해 봤는데 CGPoint와 CGSize에서 실제로 문자열 값을 얻을 수있어! 아주 요리 해줘. 고마워. – FierceMonkey

1

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

나는 UIView를 추가하고 이전 UIView에서 새로운 UIView로 모든 것을 드래그하여 이전 UIView를 삭제했습니다.

그것은 나를 위해 문제를 해결했다. 그렇다. 나는 틀린 사람이라면 누군가 해결할 수있는 인터페이스 빌더의 근본적인 문제가 있다고 생각한다.

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

25

Xcode 4.2, iOS 5.0에서와 마찬가지.1, 기본 시뮬레이션 된 메트릭 '추측'UIViewControllers '크기'특성 시뮬레이션 포함

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

+1

size 속성의 기본값은 "Retina 4 Full screen"이지만 "Freeform"으로 변경하면 여전히 작동합니다. –

63

아래의 스크린 샷을 따라야 4.6.3/5.0.2 엑스 코드에서 그 달성하기 위해 :

  1. 에서 '파일 관리자를'-> 해제 됨 Use Auto Layout
  2. 속성 S를 클릭하십시오. 선거인은 크기에 대한 Freeform를 선택 &
  3. 에 대한 headerView을 만들 때 필요

있는 tableView

나는

로 XIB를 열 ... 다른 방법으로 그것을 정리

enter image description here

0

좋아하는 텍스트 편집기와이 줄을 편집하십시오.

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

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

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

관련 문제