在我的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 infact将显示在与IB创建时相同的位置和相同的大小。
你们有没有人知道为什么这段代码不起作用?我错过了什么?
答案 0 :(得分: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"]];