UIView帧大小没有改变UIImageView放在它里面

时间:2014-12-22 08:47:01

标签: ios objective-c uiview uiimageview cgrectmake

我正在框架中制作图片,然后用户可以在运行时调整帧大小。为此,我在我的主UIView中制作了自定义UIViewController,在UIView内,我放置了UIImageView。在xCode的Document Outline Pane中,它的层次结构是:

  


查看
| --ImageView
| --ImageView

我正在使用这行代码在不同条件下更改UIView的大小,因此会相应调整大小:

self.imageObject.frame = CGRectMake(self.imageObject.frame.origin.x , 
                                    self.imageObject.frame.origin.y, 
                                    200, 
                                    200);

imageObject 是我的UIView。当我运行它时,UIView的大小会发生变化,但UIImageView大小保持不变。我也试过为我的UIImageView做同样的事情,但它不起作用。

3 个答案:

答案 0 :(得分:6)

你也可以试试这个: -

imageView.frame = CGRectMake(0,0,imageObject.frame.size.width, imageObject.frame.size.height);
imageView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
self.imageShw.contentMode = UIViewContentModeScaleAspectFit;

答案 1 :(得分:1)

尝试:

imageView.frame = CGRectMake(0,
                             0,
                             imageObject.frame.size.width, 
                             imageObject.frame.size.height);
imageView.autoresizingMask = UIViewAutoresizingFlexibleHeight | 
                             UIViewAutoresizingFlexibleWidth;

答案 2 :(得分:1)

首先你可以尝试,

self.imageObject.autoresizesSubviews = YES;

否则,为了使子视图能够调整大小,您可以将自动调整蒙版添加到子视图中,添加到您的情况下的两个图像视图中:

imageView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin   |
                             UIViewAutoresizingFlexibleRightMargin  |
                             UIViewAutoresizingFlexibleTopMargin    |
                             UIViewAutoresizingFlexibleBottomMargin |
                             UIViewAutoresizingFlexibleWidth        |
                             UIViewAutoresizingFlexibleHeight;

查看UIView documentation了解详情。