2013-01-12 33 views
2

我有一個在nib文件中定義的視圖。 (名稱爲FooView.xib如何將從nib文件加載的視圖居中?

該視圖具有固定的大小(小於屏幕大小)。

我想在視圖控制器(名爲FooViewController.[hm])中加載它,我希望視圖在任何設備(通用應用程序)中顯示在屏幕中央。

由於xib和viewcontroller類的名稱具有此類對應關係,因此xib中的視圖會自動加載。

然後,我編寫代碼在-(void)viewDidLoad方法中心我的看法,這可以由self.view引用。我寫這樣的東西。

CGRect screenBounds = [[UIScreen mainScreen]bounds]; 
self.view.center = CGPointMake(screenBounds.size.width/2, screenBounds.size.height/2); 

而且它不起作用。當我修改self.view.frame = ...時,它也不會起作用。

我檢查了self.view.centerself.view.frame的值。他們確實改變了,但我沒有看到模擬器的任何改變。

回答

1

在xib文件中,確保您禁用了自動佈局。

在viewController.m

:(*編輯:這個地方在viewDidAppear不是在viewDidLoad中)

[self.view addSubview:myView]; 
myView.center = self.view.center; 
+0

這似乎並沒有工作。 查看我編輯的問題。 –

+0

將它放入ViewDidAppear ... ViewDidLoad尚未更新視圖大小取決於您是否處於iPhone5大小的屏幕或iPhone4大小的屏幕。 –

+1

你不需要使用CGMakePoint,只需myView.center = self.view.center – rdelmar

相關問題