33

如何将图像设置为UIImage对象。例如:

UIImage *img = [[UIImage alloc] init];
[img setImage:[UIImage imageNamed:@"anyImageName"]];

我的UIImage对象在.h文件中声明并在方法中分配init,我需要在viewDidLoad方法中设置图像。有任何想法吗?

4

12 回答 12

58
UIImage *img = [UIImage imageNamed:@"anyImageName"];

imageNamed:
返回与指定文件名关联的图像对象。

    + (UIImage *)imageNamed:(NSString *)name

参数
name
文件的名称。如果这是第一次加载图像,该方法会在应用程序的主包中查找具有指定名称的图像。
返回值
指定文件的图像对象,如果方法找不到指定的图像,则返回 nil。

讨论
此方法在系统缓存中查找具有指定名称的图像对象,如果该对象存在,则返回该对象。如果匹配的图像对象尚未在缓存中,则此方法从指定文件加载图像数据,缓存它,然后返回结果对象。

于 2012-06-07T12:11:50.390 回答
11

创建一个 UIImageView 并将 UIImage 添加到它:

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image Name"]] ;

然后将其添加到您的视图中:

[self.view addSubView: imageView];
于 2012-06-07T12:17:02.993 回答
2

跟着这个

UIImageView *imgview = [[UIImageView alloc]initWithFrame:CGRectMake(10, 10, 300, 400)];
[imgview setImage:[UIImage imageNamed:@"YourImageName"]];
[imgview setContentMode:UIViewContentModeScaleAspectFit];
[self.view addSubview:imgview];
于 2017-01-10T13:06:53.970 回答
1

这一行有一个错误:

[img setImage:[UIImage imageNamed@"anyImageName"]]; 

它应该是:

[img setImage:[UIImage imageNamed:@"anyImageName"]]; 
于 2012-06-07T12:13:33.363 回答
1
UIImage *img = [UIImage imageNamed@"aImageName"];
于 2012-06-07T12:14:02.573 回答
1

或许:

UIImage *img = [[UIImage alloc] init];

以及当您要更改图像时:

img = [UIImage imageNamed:@"nameOfPng.png"];

但是对象不在内存中的同一个位置,但是如果你使用指针,同一个指针将指向最后加载的图像。

于 2012-06-07T12:14:22.527 回答
0

就像 vikingosgundo 说的那样,但请记住,如果您使用,[UIImage imageNamed:image]那么图像会被缓存并消耗内存。因此,除非您打算在许多地方使用相同的图像,否则您应该加载图像,并使用imageWithContentsOfFile:imageWithData:

这将为您节省大量内存并加速您的应用程序。

于 2012-06-07T12:16:15.893 回答
0

首先声明 UIImageView 并给它框架

UIImageView *imageView = [[UIImageView alloc] initWithFrame: CGRectMake( 10.0f, 15.0f, 40.0f,40.0f )];
        [imageView setBackgroundColor: [UIColor clearColor]];
        [imageView setImage:[UIImage imageNamed:@"comments_profile_image.png"]];
        [self.view addSubview: imageView];
于 2012-09-22T04:49:24.923 回答
0

您可以通过以下方式在 UIImage 对象中设置图像:

  1. UIImage *imageObject = [UIImage imageNamed:@"imageFileName"]; 但是通过像这样初始化UIImageObject ,图像总是存储在缓存中,即使你让它nil像这样imageObject=nil;

最好遵循这个:

  1. NSString *imageFilePath = [[NSBundle mainBundle] pathForResource:@"imageFilename" ofType:@"imageFile_Extension"];

    UIImage *imageObject = [UIImage imageWithContentsOfFile:imageFilePath];
    

例子: NSString *imageFilePath = [[NSBundle mainBundle] pathForResource:@"abc" ofType:@"png"];

UIImage *imageObject = [UIImage imageWithContentsOfFile:imageFilePath];
于 2012-11-30T18:39:25.163 回答
0

只需更改此行

[img setImage:[UIImage imageNamed:@"anyImageName"]];

与以下行

img = [UIImage imageNamed:@"anyImageName"];
于 2014-08-12T13:28:41.897 回答
0

你不能分配 UIImage,这是不可能的。UIImageView 的正确代码分配:

UIImageView *_image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"something.png"]] ;

绘制图像:

CGContextDrawImage(context, rect, _image.image.CGImage);
于 2015-09-30T09:24:58.847 回答
0

尝试此代码以 100% 工作....

UIImageView * imageview = [[UIImageView alloc] initWithFrame:CGRectMake(20,100, 80, 80)];
imageview.image = [UIImage imageNamed:@"myimage.jpg"];
[self.view  addSubview:imageview];
于 2016-05-18T06:19:34.397 回答