2015-07-11 75 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不同。

相关问题