-1

我有一个观点UIImageView。我正在从我的服务器中检索 300 像素宽和 100 像素高的图像。但是,当我将图像插入到 myUIImageView中时,图像会被拉伸到图像视图的大小。

代码viewDidLoad:

id path = @"URL TO IMAGE";
NSURL *url = [NSURL URLWithString:path];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *img = [[UIImage alloc] initWithData:data];

CGRect frame = [imageView frame];
frame.size.width = 300;
frame.size.height = 100;
[imageView setFrame:frame];

self.imageView.image = img;

但是,UIImageView大小不会更改为我上面代码的第 6 行和第 7 行中的值。

我很感激任何建议,我对 Objective-C 很陌生。

。H:

#import <UIKit/UIKit.h>

@interface detailViewController : UIViewController
@property (strong, nonatomic) IBOutlet UIImageView *imageView;
4

1 回答 1

3

您需要设置 UIImageView 的contentMode. 查看 UIView 文档contentMode以了解您可以使用的不同值。例如,UIViewContentModeScaleToFill拉伸图像以完全匹配 UIImageView 的大小;UIViewContentModeCenter根本不会改变图像的大小;等等。

编辑:至于 UIImageView 本身,您需要确保您的引用都正确指向同一个 UIImageView 并且这是来自笔尖的同一个 UIImageView。此外,如果在笔尖上启用了 Autolayout,您setFrame:将不会有任何效果,因为框架是由约束决定的。

于 2013-04-24T21:37:40.597 回答