Как установить изображение в UIImage

Как установить изображение в объект UIImage. Например:

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

Мой объект UIImage объявлен в .h файле и выделен в методе init, мне нужно установить образ в метод viewDidLoad. Есть идеи?

Ответ 1

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

imageNamed:
Возвращает объект изображения, связанный с указанным именем файла.

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

параметры
имя
Имя файла. Если это первый раз, когда изображение загружается, метод ищет изображение с указанным именем в главном комплекте приложений.
Возвращаемое значение
Объект изображения для указанного файла, или nil, если метод не смог найти указанное изображение.

обсуждение
Этот метод просматривает системные кэши для объекта изображения с указанным именем и возвращает этот объект, если он существует. Если соответствующий объект изображения еще не находится в кеше, этот метод загружает данные изображения из указанного файла, кэширует его и затем возвращает результирующий объект.

Ответ 2

Создайте UIImageView и добавьте к нему UIImage:

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

Затем добавьте его в свой вид:

[self.view addSubView: imageView];

Ответ 3

В этой строке есть ошибка:

[img setImage:[UIImage [email protected]"anyImageName"]]; 

Должен быть:

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

Ответ 5

Просто следуй за этим

UIImageView *imgview = [[UIImageView alloc]initWithFrame:CGRectMake(10, 10, 300, 400)];
[imgview setImage:[UIImage imageNamed:@"YourImageName"]];
[imgview setContentMode:UIViewContentModeScaleAspectFit];
[self.view addSubview:imgview];

Ответ 6

может быть:

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

и когда вы хотите изменить изображение:

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

но объект не был в том же месте в памяти, но если вы используете указатель, тот же указатель будет указывать на загруженное последнее изображение.

Ответ 7

Как сказал vikingosgundo, но имейте в виду, что если вы используете [UIImage imageNamed:image] тогда изображение будет кэшироваться и уничтожает память. Поэтому, если вы не планируете использовать один и тот же образ во многих местах, вы должны загрузить изображение с помощью imageWithContentsOfFile: и imageWithData:

Это сэкономит вам значительную память и ускорит ваше приложение.

Ответ 8

Сначала объявите 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];

Ответ 9

Вы можете установить изображение в элементе UIImage следующим образом:

  1. UIImage *imageObject = [UIImage imageNamed:@"imageFileName"]; но, инициализируя объект UIImage таким образом, изображение всегда сохраняется в кэш-памяти, даже если вы делаете его 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];

Ответ 10

просто измените эту строку

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

со следующей строкой

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

Ответ 11

Вы не можете выделить UIImage, это невозможно. Правильный код с UIImageView выделяет:

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

Рисовать изображение:

CGContextDrawImage(context, rect, _image.image.CGImage);

Ответ 12

Попробуйте этот код для работы на 100%....

UIImageView * imageview = [[UIImageView alloc] initWithFrame:CGRectMake(20,100, 80, 80)];
imageview.image = [UIImage imageNamed:@"myimage.jpg"];
[self.view  addSubview:imageview];