Как я могу изменить изображение, отображенное в UIImageView программно?

Вот еще одно решение, если вы не хотите полагаться на сторонние плагины. Лодаш также довольно тяжелая библиотека.

var deleteObj = ({data, index}) => {
    var objSize = Object.keys(data).length
    if (index > objSize -1) return data
    var count = index;
    delete data[count];
    count = count+1;
   while (count < objSize){
      data[count-1] = data[count];
      count = count+1;
  }
  delete data[count-1];
  return data;
}

deleteObj({data: {0: "A", 1: "B", 2: "C", 3: "D", 4: "E", 5: "F"}, index: 0});
133
задан Tamás Sengel 4 April 2018 в 10:05
поделиться

5 ответов

Если у Вас уже есть IBOutlet к UIImageView, то все, что необходимо сделать, захватить изображение и назвать setImage на получателе (UIImageView). Два примера захвата изображения ниже. Один с сети, и один Вы добавляете к своей папке Resources в XCode.

UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://farm4.static.flickr.com/3092/2915896504_a88b69c9de.jpg"]]];

или

UIImage *image = [UIImage imageNamed: @"cell.png"];

После того как у Вас есть Изображение, можно затем установить UIImageView:

[imageView setImage:image];

Строка выше предполагает, что imageView является Вашим IBOutlet.

Именно! Если Вы хотите стать необычными, можно добавить изображение к UIView и затем добавить переходы.

P.S. управление памятью, не включенное.

185
ответ дан 24 November 2019 в 00:00
поделиться

Следуя совету Джордана (который на самом деле должен работать), попробуйте сделать UIImageView видимым:

 [imageView setHidden: NO];

, а также - не забудьте прикрепить его к основному UIView:

[mainView addSubview: imageView];

и выдвинуть вперед:

[mainView bringSubviewToFront: imageView];

Надежда, объединив все эти шаги, поможет вам разгадать тайну.

9
ответ дан 24 November 2019 в 00:00
поделиться

Это сработало для меня

[ImageViewName setImage:[UIImage imageNamed: @"ImageName.png"]];

Убедитесь, что ImageView правильно объявлен в .h файле и связан с элементом IB.

29
ответ дан 24 November 2019 в 00:00
поделиться

Для людей, которые, возможно, будут гуглить это, чтобы попытаться решить свою проблему, помните, что нужно правильно объявить свойство в вашем заголовочном файле и синтезировать UIImageView в вашем файле реализации... Будет трудно установить изображение программно без методов getter и setter.

#import <UIKit/UIKit.h>

@interface YOURCONTROLLERNAME : UIViewController {
    IBOutlet UIImageView *imageToDisplay;
}

@property (nonatomic, retain) IBOutlet UIImageView *imageToDisplay;

@end

и затем в вашем .m :

@implementation YOURCONTROLLERNAME

@synthesize imageToDisplay;
//etc, rest of code goes here

Оттуда вы должны быть в порядке, используя что-то вроде следующего для установки изображения.

[YOURCONTROLLER.imageToDisplay setImage:[UIImage imageNamed:value]];
16
ответ дан 24 November 2019 в 00:00
поделиться

Обратите внимание, что файл NIB не подключает все IBOutlets до тех пор, пока представление не будет добавлено в сцену. Если вы подключаете компоненты вручную (что вы можете делать, если они находятся в отдельных NIB), это важно иметь в виду.

Итак, если в моем тестовом контроллере представления есть «imageView», подключенный пером, это, вероятно, не сработает:

  testCardViewController.imageView.image = [UIImage imageNamed:@"EmptyCard.png"];
  [self.view addSubview:testCardViewController.view];

Но это будет:

  [self.view addSubview:testCardViewController.view];
  testCardViewController.imageView.image = [UIImage imageNamed:@"EmptyCard.png"];
37
ответ дан 24 November 2019 в 00:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: