2015-07-11 29 views
0

我有一個尺寸爲UIView,內部尺寸不同的UIImageView。 UIImageView通過UIViewContentModeScaleToFill擴展其內容。添加UIImageView並將其大小調整爲UIView,並將其大小完全覆蓋它

我想將UIImageView作爲子視圖添加到UIView,以便UIImageView覆蓋UIView ,正好是

這是我第一次嘗試,UIImageView縮放應該是,但不幸的是它的位置,我不明白爲什麼。 Self是UIView。

self.imageView.bounds = self.bounds; 
[self addSubview:self.imageView]; 

編輯:

我這樣的一種:

self.imageView.frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height); 

我來自cocos2d的,當你添加一個子視圖到視圖,你總是使用contentSize有(類似限制在UIKit中),禁止使用框架,因爲原始視圖可能已被重新縮放或旋轉。我真的不明白爲什麼在這種情況下使用邊界是不正確的,爲什麼它處於關閉位置,以及幀是如何使用正確的。

EDIT2:

我做了一些測試,我旋轉和縮放UIView的之前,我加入的UIImageView到它。如果UIView被縮放或旋轉,那麼使用框架不能正確放置UIImageView。我仍然不認爲在這種情況下使用框架是適當的解決方案,因爲我不能確定UIView還沒有被縮放或旋轉過。

EDIT3:

這一個完美的作品,即使UIView的已縮放或旋轉之前:

self.imageView.frame = self.bounds; 
+0

它應該是「self.imageView.frame = self.frame''嗎? – Sreejith

回答

0

嘗試使用setFrame:而不是改變邊界。

0

界限和框架不是一回事,哪個框架指示視圖的位置。

因此,您不應該設置imageView的邊界,而是嘗試設置其框架。

self.imageView.frame = CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height); 
[self addSubview:self.imageView]; 

這應該工作!

編輯:

UIKit中,當它的位置和界限已定一認爲是可見的。換句話說,你必須設置其框架而不是邊界。這與Cocos-2D不同。

相關問題