我會嘗試儘可能縮短它的長度。使用界面生成器嵌套自定義類/ XIB
我寫了一個自定義類,它用一些IBOutlet屬性來擴展UIView,並且在那些IBOutlets鏈接到它的地方有一個與它關聯的XIB。
然後,我想把這個類嵌入到其他一些XIB(例如表格單元格)中,然後讓它工作。
看來,當我將該自定義類嵌入到新的XIB中時,它無法識別與其關聯的原始XIB,因此它會要求我將IBOutlet重置爲新XIB上的界面元素。這是跛腳。
有沒有人知道我在做什麼,並有一個很好的方法?
我會嘗試儘可能縮短它的長度。使用界面生成器嵌套自定義類/ XIB
我寫了一個自定義類,它用一些IBOutlet屬性來擴展UIView,並且在那些IBOutlets鏈接到它的地方有一個與它關聯的XIB。
然後,我想把這個類嵌入到其他一些XIB(例如表格單元格)中,然後讓它工作。
看來,當我將該自定義類嵌入到新的XIB中時,它無法識別與其關聯的原始XIB,因此它會要求我將IBOutlet重置爲新XIB上的界面元素。這是跛腳。
有沒有人知道我在做什麼,並有一個很好的方法?
下面是如何設法使這項工作:
在Interface Builder
打開外筆尖和做到這一點:
在Xcode中
在你的外視圖控制器的viewDidLoad中方法,添加以下兩行:
[self.innerView addSubview:self.innerViewController.view];
self.innerViewController.view.frame = CGRectMake(0, 0, self.innerView.frame.size.width, self.innerView.frame.size.height);
如果你的外筆尖是一個自定義的UITableViewCell,把這些線在你awakeFromNib改爲方法。
Build &跑吧!
我假設你只是簡單地將UIViews放在一個筆尖中供UIViewController使用,這純粹是在代碼中使用的。蘋果稱這是一個detached nib file。
按照我指導的鏈接瞭解詳細信息以及如何使其工作的示例。
關於在Interface Builder中將視圖嵌入到另一個視圖中,您需要將add a UIView element from the Library插入到父視圖中,並且需要set its class in the Inspector。一旦嵌入視圖的類被設置,你的IBOutlets應該是可見的。
第一句話並不完全是我在做的。該類本身是一個UIView,它包含一個UIImageView和一個UIActivityIndicator。最後一句話是對的,但不幸的是它行爲不正確。它支持IBOutlets。 – 2009-11-17 19:23:56
它在OS X上的工作方式相同,只是用它們的NS對應替換UI類。 – Mark 2013-08-15 17:42:53