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

标签 ios cocoa-touch uikit

在我的 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 创建的 outlet。

问题是当我启动应用程序时,这段代码似乎对 UIImageView 的框架没有任何影响。 imageview infact 将显示在我用 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"]];

source

关于ios - 更改框架不会调整 UIImageView 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13499455/

相关文章:

ios - Swift 动态表格文本超出单元格宽度

objective-c - 我应该在返回对象之前发送 retain 或 autorelease 吗?

ios - MediaPlayer.framework (MPMoviePlayerController) 从需要访问凭据的 URL 播放电影

ios - table view 行可以在其部分移动时保持原样吗?

ios - 堆栈 View 和内容拥抱优先级 - 意外行为

ios - 强制导航栏为状态栏添加空间

objective-c - SVGKit 不显示 potrace 生成的图像

ios - 我的应用程序在 ios6 中使用 UIAppearance setTintColor 关闭

cocoa-touch - 在 SKScene 中处理摇动手势

objective-c - UIBarButtonItem 如何知道 UIToolBar 使用哪种 UIBarStyle?