我有一個從xib文件加載的UIView子類。在我CustomView.h文件,我根本不理會在initWithFrame中的CGRect參數:方法:實例化從xib加載的UIView子類
- (id)initWithFrame:(CGRect)frame {
self = [[[NSBundle mainBundle] loadNibNamed:@"CustomView" owner:nil options:nil] objectAtIndex:0];
return self;
}
現在我的問題是這樣的:每當我實例化我的自定義視圖,什麼是我應該傳球的框架?
舉例來說,我嘗試這樣做:
CustomView *cv = [[CustomView alloc] initWithFrame:CGRectZero];
人們會認爲,因爲框架是在廈門國際銀行成立,也不會不管是什麼在這裏通過。但是,這會導致我的自定義視圖對用戶交互無響應。
這並不是多麼loadNibNamed作品。我很驚訝這不會導致崩潰。返回類型是根級對象的NSArray。如果你真的想要一個對象來使用它們,你必須設置一個所有者。附:不要這樣做,這太奇怪了。 – borrrden
什麼是更好的方法?你能詳細說明嗎?你還可以在xib中創建一個自定義視圖,並在視圖控制器中使用它? –
你不必擔心。這是XIB文件的要點。你通常實例化一個*視圖控制器*而不是*視圖*。您可以使用initWithNibName:bundle創建一個視圖控制器:您可以在XIB中更改視圖的類。如果你不知道如何,那裏有很多信息供你學習。之後,如果你想要一些自定義初始化,你可以重寫initWithCoder:如下面的答案。 – borrrden