我在設計使用IB一個特定的按鈕(帶有一些標籤,以及imageView和其他東西)。在另一個xib中使用xib對象
我想然後在另一個xib中使用該xib對象(按鈕),其中我有該按鈕的6個對象。
我知道我可以使用類標識符以編程方式做到這一點,但我必須定位我的標籤和圖像視圖,並在代碼中設置默認值和其他一切。
我想知道是否有可能使用IB來做同樣的事情? (當然我仍然會在代碼中設置的值,但我要的標貼/ ImageView的和所有其餘的位置在廈門國際銀行進行設置)
感謝
編輯
所以,我明白我最初要求的是不可能的。 我現在想要的是這樣的:
我創建了一個ButtonTest.xib
。 Xib內部我有一個UIView和3個子視圖(2個標籤和一個按鈕)。 在檢查員中,我將UIView類設置爲ButtonTest
。 Inside ButtonTest.m我有3個插座,用於連接IB的每個子視圖。
接下來我有ButtonTestViewController.xib
。 在裏面我放了一個視圖,並在檢查器中設置它的類爲ButtonTest
。 我該視圖連接到myTextView
插座內ButtonTestViewController.m
ButtonTest
類
的現在,這是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模板,並且標籤值將在代碼中進行設置。你說
EDIT2
好吧,夥計們我所做的一切和它的工作就像一個魅力。 我現在遇到的這個問題唯一的問題是當ButtonTestViewController.xib
中的視圖稍大時,然後在ButtonTest.xib
中查看。 發生這種情況時,按鈕上的標籤看起來非常模糊。 當他們都是相同的大小,這一切都很好。
@ NED - 我用你在我的initWithCoder方法發佈確切的代碼,但我換幀一句話是:
self.bounds = mainView.frame;
我試着在IB與內容模式下播放試圖修復它,徒勞無功。
當我使用它就像你貼,意思是:
mainView.frame = self.bounds;
它不工作,而這兩種觀點大小保持不變。 在這裏,我嘗試玩resizeMask,但仍然沒有工作。
和想法如何解決這兩個問題? 謝謝你們!
編輯3
我還是設法解決的問題之一,調整的ButtonTestViewController.xib
到ButtonTest.xib
視圖大小。 這是我做了什麼(使用代碼來解決模糊問題,從here拍攝)
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;
的另一個問題我還是解決不了。 ButtonTest.xib中的視圖不會變大以匹配其他視圖。
我覺得OP已經得到了這麼遠了。他問如何隨後在其他.xib文件中使用MyView.xib,並能夠完全編輯自定義界面。 –
馬特是對的,我用一個新問題編輯了這個問題。請看一下。 – Idan
我已經編輯了我的答案,以便更清楚一點。我認爲這是你想要做的。 – Ned