0

我有一個UIView/UIViewController(UIViewController)內的故事板,其中包含具有關聯的.xib文件的自定義UIView(CustomView)。我遇到以下現象當我加載UIViewController:(?)在subview的awakeFromNib和view的viewDidLoad之間調用了哪些函數?

  • CustomViewawakeFromNib函數被調用
  • SOMETHING設置我的子視圖的框架0.0的高度;堆棧跟蹤顯示[UIViewController autoresizedArchivedView](相關?)
  • UIViewControllerviewDidLoad函數被調用

任何想法是什麼awakeFromNibviewDidLoad以及如何我可以控制它之間出現這種‘東西’?

+0

那 「東西」 是最有可能的自動佈局。嘗試在' - (void)viewDidLayoutSubviews'中調用自定義視圖的'awakeFromNib'來查看它是否有效。 – Eugene 2013-03-27 01:47:16

+0

@Eugene:看看是否有用?在視圖控制器的'viewDidLayoutSubviews'中調用自定義視圖的'awakeFromNib'似乎並沒有將自定義視圖設置回原始高度(如從storyboard設置)。 – 2013-03-27 02:08:10

回答

0

幾何屬性未設置對歸檔對象,直到 viewDidLoad中:

- (void)viewDidLoad 
    { 
     [super viewDidLoad]; 
     NSLog (@"%@ %@", 
       NSStringFromSelector(_cmd), 
       NSStringFromCGRect(self.testView.frame)); 

    } 

    - (void) viewWillAppear:(BOOL)animated 
    { 
     [super viewWillAppear:animated]; 
     NSLog (@"%@ %@", 
       NSStringFromSelector(_cmd), 
       NSStringFromCGRect(self.testView.frame)); 
    } 


    - (void) viewDidAppear:(BOOL)animated 
    { 
     [super viewDidAppear:animated]; 
     NSLog (@"%@ %@", 
       NSStringFromSelector(_cmd), 
       NSStringFromCGRect(self.testView.frame)); 
    } 

登錄:

viewDidLoad {{0, 0}, {0, 0}} 
    viewWillAppear: {{0, 0}, {0, 0}} 
    viewDidAppear: {{80, 224}, {160, 274}} 
+0

我的日誌文件顯示:viewDidLoad {{0,249},{320,0},viewWillAppear:{{0,249},{320,0}},viewDidAppear:{{0,249},{320,0 }}。子視圖是一個具有關聯的.xib文件的自定義UIView。 – 2013-03-28 17:43:23

相關問題