2011-02-23 5 views
16

IB를 사용하여 특정 버튼 (일부 레이블 및 imageView 및 기타 항목 포함)을 사용하여 디자인하고 있습니다.다른 xib 안에 xib 객체 사용

그런 다음 그 xib 객체 (버튼)를 다른 xib에서 사용하고 싶습니다. 여기에는 해당 버튼의 객체가 6 개 있습니다.

프로그래밍 방식으로 클래스 식별자를 사용할 수 있지만 내 lables 및 이미지보기를 배치하고 기본값과 그 밖의 모든 코드를 설정해야한다는 것을 알고 있습니다.

IB 만 사용하여 동일한 작업을 수행 할 수 있는지 궁금합니다. 그래서 편집에게

감사

을 (물론 나는 아직도 코드의 값을 설정합니다,하지만 난 lables/이미지 뷰 및 모든 나머지의 위치에 배치합니다 XIB에서 설정 될 수 원하는) , 나는 처음에 요청한 것이 불가능하다는 것을 이해합니다. 내가 지금 시도하는 것은 :

나는 ButtonTest.xib을 만들었습니다. Xib 안에는 UIView와 3 개의 하위 뷰 (lables and button)가 있습니다. Inspector에서 UIView 클래스를 ButtonTest으로 설정했습니다. ButtonTest.m 내부에는 IB에서 연결하는 각 하위 뷰에 대해 3 개의 콘센트가 있습니다.

다음으로 나는 ButtonTestViewController.xib입니다. 그 안에 하나의 견해를두고 inspector의 클래스를 ButtonTest으로 설정합니다. 나는 지금

클래스 ButtonTestButtonTestViewController.m 내부 myTextView 콘센트에 해당 뷰를 연결,이 ButtonTestViewController.m있는 viewDidLoad 내부의 코드는 : 나는 일어날 것 희망 무엇

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed:@"ButtonTest" owner:nil options:nil]; 
    ButtonTest *mainView = (ButtonTest*)[subviewArray objectAtIndex:0]; 

    self.myTextView = mainView; 
} 

이며, 그 ButtonTestViewController에서 볼 수 있습니다. xib는 ButtonTest.xib에서 디자인 한 뷰가됩니다. 이것은 단지 발생하지 않습니다. ButtonTestViewController.xib 내부의 뷰는 그대로 유지됩니다.

[self.view addSubview:mainView]; 

그것은 기존 외에, 새로운보기를 추가 않습니다 언급 할 가치가

는, 내가 추가하는 경우이다.

내가 원하는 것을 어떻게하면 좋을지 생각해보십시오.

결국 나는 ButtonTestViewController.xib에 6 개의보기를 갖고 싶습니다. 모두 ButtonTest.xib 템플릿처럼 보일 것이며, lables 값은 코드에서 설정 될 것입니다. 내가 다했다

Edit2가

좋아, 사람은 당신이 말하고 그것이 마치 마법처럼 일했다. 지금이 문제가있는 유일한 문제는 ButtonTestViewController.xib의보기가 조금 더 크고 ButtonTest.xib의보기 인 경우입니다. 그럴 때 버튼의 lable이 매우 흐리게 보입니다. 둘 다 크기가 같으면 모두 좋습니다.

self.bounds = mainView.frame; 

내가 그것을 해결하기 위해 노력 IB의 콘텐츠 모드와 함께 연주 시도에, -

는 네드 @ 나는이에 프레임 문장을 전환 제외하고 난 당신이 내 InitWithCoder 방법에 게시 된 정확한 코드를 사용 아무 소용이.

난 당신이 의미 게시처럼 사용 할 때 : 그것은 전혀 작동하지 않습니다, 그리고 두보기 '크기는 동일하게 유지

mainView.frame = self.bounds; 

. 여기 resizeMask를 가지고 놀려고했으나 여전히 작동하지 않았습니다.

아이디어 및이 두 가지 문제를 해결하는 방법? 감사합니다.

편집 3

나는 ButtonTestViewController.xibButtonTest.xib보기 크기를 크기 조정 문제 중 하나를 해결하기 위해 관리 않았다. 이것은 내가

self.bounds = CGRectMake(0, 0, mainView.frame.size.width, mainView.frame.size.height); 
     CGRect overlay2Frame = self.frame; 
     overlay2Frame.origin.x = round(overlay2Frame.origin.x); 
     overlay2Frame.origin.y = round(overlay2Frame.origin.y); 
     self.frame = overlay2Frame; 

나는 아직도 해결할 수없는 다른 문제 (here에서 가져온 모호한 문제를 해결하기 위해 코드를 사용) 한 것입니다. ButtonTest.xib의보기가 다른보기와 일치하도록 커지지는 않습니다.

답변