我試圖將一個複雜的xib組織成多個視圖。iOS - 界面生成器 - 在同一個xib中綁定多個視圖
假設以下情形:
我主視圖(綠色的),其中包含兩個子視圖(紅色和黃色的)。
其實我可以創建三個xib並以編程方式添加子視圖。
我發現了一個更智能的解決方案:我在主視圖(綠色)中定義兩個IBOutlet並將它們連接到子視圖。
@property (nonatomic, weak) IBOutlet RedView * redView;
@property (nonatomic, weak) IBOutlet YellowView * yellowView;
在主視圖中實現,編程,我添加子視圖:
- (void)awakeFromNib
{
[super awakeFromNib];
self.redView.frame = self.frame;
self.redView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
self.yellowView.frame = self.frame;
self.yellowView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
[self addSubview:self.redView];
[self addSubview:self.yellowView];
}
正如你所看到的,我需要設置當前幀的大小,autoresizingMask和子視圖添加到父。
問題:
有沒有直接從廈門國際銀行執行這些操作的好方法? 我想加載xib(「loadNibNamed」)並獲取已經填充子視圖的主視圖(綠色)。
我已經嘗試了一些解決方案,但沒有作品...
編輯:
我不希望添加的紅色和黃色視圖直接在IB子視圖。
這兩個子視圖與父級一樣大,這使得與界面生成器一起工作變得複雜(隱藏黃色視圖並在紅色上工作,然後隱藏紅色並在黃色上工作)。
我想在同一個xib中有單獨的視圖,但是能夠在父子樹中「構圖」它們...
是的,你可以把兩個子視圖放在xib中的綠色內。如果你想讓它們成爲子視圖,你爲什麼要把它們作爲單獨的視圖? – rdelmar
假設紅色和黃色視圖與綠色視圖一樣大,因爲我應用了一個水平滑動效果,因此當時只有一個孩子可見。如果我把兩個子視圖放到父項中(好的,這個工作正常),使用IB變得更加困難(隱藏紅色視圖並在黃色上工作,然後隱藏黃色並在紅色上工作,等等......) 。 –
你不需要隱藏視圖,你可以按照他的回答中的巧妙錯誤建議對它們重新排序。在任何情況下,xib都無法爲您自動添加子視圖,您需要像顯示的代碼那樣執行此操作。 – rdelmar