我的iphone應用程序出現了一個小問題(即使我之前已經完成了objective-c,我對於iphone programmation也很陌生)。作爲子視圖從xib加載的UIView:如何正確設置框架/大小?
我在我的主窗口中有一個名爲centerView
的UIView。 我創建了一個與xib文件鏈接的UIViewController(我們稱之爲FooViewController
)的單例子類。我的目標是將關聯視圖作爲子視圖(centerView使用centerView的整個框架)加載。
問題:由FooViewController控制的視圖不使用其超視圖的框架。
我已嘗試添加:
self.view.frame = self.view.superview.frame
在initWithNib的 「自定義初始化」 的一部分......方法FooViewController[[[FooViewController sharedController] view] setFrame:centerView.frame]
,當我添加視圖CENTERVIEW([centerView addSubView:[[FooViewController sharedController] view]]
) (我曾試過這條線前後)
但我不能得到好的行爲(即g ood大小)。有這樣的問題有多個問題,但我無法找到我的答案在他們如此:
- 你知道我該如何解決這個問題嗎?
- [可選]與xib鏈接的UIViewController的實例是如何工作的?必須有一個資源文件,其中指出了xib的名稱?或者,它可能會尋找與班級同名的xib嗎?
在此先感謝您的幫助。
非常感謝您的回答。我試圖把有關框架設置的代碼放在viewWillAppear中,但它似乎確實做了任何事情。實際上問題來自另一部分:即使在viewWillAppear中,superview也是null(但self.view.superview.frame不會創建任何段錯誤...)。我會研究這一點。 – ThR37 2011-06-12 21:47:48
在obj-c中,如果接收者爲零,它將接受任何方法,並返回零(我認爲)。這就是爲什麼即使self.view.superview爲零也不會出現段錯誤的原因。 – 2011-06-12 22:02:08