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
으로 설정합니다. 나는 지금
클래스 ButtonTest
의 ButtonTestViewController.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.xib
에 ButtonTest.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의보기가 다른보기와 일치하도록 커지지는 않습니다.