更换框架不会调整UIImageView的大小。

3

在我的iPhone应用程序中,我正在尝试通过编程方式调整和移动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的框架没有任何影响。实际上,ImageView将以我在IB中创建时设置的相同位置和大小显示。

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

1个回答

5
我认为您可能需要不同的内容模式。
尝试使用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"]];

source


3
尽管使用了initWithFrame,但UIViewContentModeScaleAspectFit没有起作用! 不过这个行为是不是有点奇怪?我的意思是改变已有的 UIImageView 实例的框架应该起作用才对吧? - BigLex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接