Как установить изображение в 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"]];
Ответ 4
UIImage *img = [UIImage [email protected]"aImageName"];
Ответ 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 следующим образом:
-
UIImage *imageObject = [UIImage imageNamed:@"imageFileName"];
но, инициализируя объект UIImage
таким образом, изображение всегда сохраняется в кэш-памяти, даже если вы делаете его nil
как imageObject=nil;
Лучше следовать этому:
-
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];