2011-07-07 46 views
2

用下面的代碼:全屏的UIImageView對準底部

 
UIImageView *largeImageView = [[UIImageView alloc] initWithImage:theImage]; 
[largeImageView setContentMode:UIViewContentModeScaleAspectFit]; 
largeImageView.frame = [[UIScreen mainScreen] applicationFrame]; 

[viewController.view addSubview:largeImageView]; 
viewController.hidesBottomBarWhenPushed = YES; 
[self.navigationController pushViewController:viewController animated:YES]; 

我希望圖像出現在視圖,而不是底部的頂部。我仔細檢查了原點x和y,它們是0,0。

下面是截圖:http://cl.ly/8F3J

回答

1

感謝Tommy提供了一些大聲的思考和調試幫助,我弄清楚我做錯了什麼。我改變了操作順序,並在之後添加了imageview作爲子視圖我將視圖控制器放在導航堆棧上。這解決了這個問題,因爲我的視圖控制器有它從導航控制器的新視圖。

0

largeImageViewviewController.view一個子視圖,所以其座標是相對於它的父的。也許你想要更多的東西一樣:

// the bounds of viewController.view contain its correct size, but 
// have an origin of (0, 0) 
largeImageView.frame = viewController.view.bounds; 

[viewController.view addSubview:largeImageView]; 

什麼在一分鐘可能發生的事情是,你得到比視圖控制器的視圖尺寸更大的框架,那麼事實UIViewContentModeScaleAspectFit將在頂部加入一些空間和視圖底部(假設您的圖像比目標視圖的比例寬)將圖像從屏幕底部推出。

+0

感謝您的迴應,並且您的解釋很有意義,但是,我嘗試了您提供的代碼,並且看到相同的確切結果。 –

+0

是否有可能您的視圖控制器的視圖結束運行在屏幕的底部?如果你NSLog viewController.view.frame.size.height,你會得到什麼? – Tommy

+0

呵呵......有趣的是,它輸出爲0.我正在實例化這個視圖控制器,我沒有給它一個框架。這會成爲問題嗎? –