[英]Custom UIView(.xib) changes frame automatically after adding as subview in UITableViewCell
[英]UIView loaded from xib as subview : How to set the frame/size properly?
我的 iphone 應用程序有一個小問題(即使我之前已經完成了 objective-c,我對 iphone 編程還是很陌生)。
我的主 window 中有一個名為centerView
的 UIView。 我創建了一個與 xib 文件鏈接的 UIViewController 的 singleton 子類(我們稱之為FooViewController
)。 我的目標是將關聯視圖加載為子視圖(使用 centerView 的整個框架的 centerView)。
問題:FooViewController 控制的視圖不使用其父視圖的框架。
我試圖添加:
self.view.frame = self.view.superview.frame
self.view.superview.frame initWithNib的“自定義初始化”部分... FooViewController的方法
[[[FooViewController sharedController] view] setFrame:centerView.frame]
當我將視圖添加到 centerview 時( [centerView addSubView:[[FooViewController sharedController] view]]
)(我在這條線之前和之后都試過)
但我無法獲得良好的行為(即良好的尺寸)。 有多個與此類問題相關的問題,但我無法在其中找到答案,因此:
在此先感謝您的幫助。
從 NIB 加載時,視圖會在視圖控制器的loadView
方法中加載,而不是在初始化程序中。 由於您不應該真正覆蓋loadView
,尤其是。 如果您從 NIB 加載它,您應該嘗試在視圖控制器的viewDidLoad
方法中執行 #1 ( self.view.frame = self.view.superview.frame
)。 當然,您應該確保在執行此語句時將視圖添加到超級視圖中。 您還需要確保此時已正確設置超級視圖的框架。
另一個可以嘗試的地方是viewWillAppear:
方法。 到那時,您的視圖的超級視圖很可能已經正確設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.