更改框架不会调整 UIImageView 的大小



在我的iPhone应用程序中,我正在尝试以编程方式调整UIImageView的大小并移动UIImageView,以便将其作为iPhone屏幕左上角的原点,并使其与屏幕的高度一样宽和高。为此,我使用以下代码:

-(void)viewDidLoad
{
     //Getting screen size
     CGRect screenSize = [[UIScreen mainScreen]bounds];
     //Creating the new frame for the UIImageView
     CGRect arect = CGRectMake(0, 0, screenSize.size.height, screenSize.size.height);
     //Setting the image to show
     UIImage *image = [UIImage imageNamed:@"Adele.jpg"];
     self.imageView.image = image;
     //Setting new frame and contentmode
     self.imageView.frame = arect;
     self.imageView.contentMode = UIViewContentModeScaleToFill;
}

self.imageView是我用InterfaceBuilder创建的出口。

问题是,当我启动应用程序时,此代码似乎对 UIImageView 的框架没有任何影响。图像视图事实将显示在与我使用 IB 创建它时设置的相同位置和大小。

你们中有没有人知道为什么这段代码不起作用?我错过了什么?

我认为您可能需要不同的内容模式。

试一试UIViewContentModeScaleAspectFit。在上下文中:

self.imageView.frame = arect;  
self.imageView.contentMode = UIViewContentModeScaleToFill;

如果这不起作用,您可以initWithFrame

CGRect myImageRect = CGRectMake(0.0f, 0.0f, 320.0f, 109.0f);
UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect];
[myImage setImage:[UIImage imageNamed:@"myImage.png"]];

最新更新