Получение изображения на UIImageView - PullRequest
1 голос
/ 02 июня 2011

В настоящее время я создаю приложение, в котором пользователь делает фотографию или выбирает ее из альбома, после чего поверх изображения накладывается оверлей. Затем пользователь может масштабировать, поворачивать и сохранять изображение.

На данный момент у меня есть 2 XIB-файла. Первый имеет эскизы для наложения изображений на выбор. Нажав на один из них, вы перейдете в другой файл XIB, где у меня есть 2 UIImageViews. Один для наложения и один для камеры. Ранее я просто использовал конструктор интерфейса, чтобы установить изображение на атрибуты. Но если у вас есть 20 оверлеев, это означает, что я должен использовать 20 XIBS. Поэтому я подумал, что лучший способ - это добавить картинки через код, чтобы я мог использовать этот второй xib в качестве шаблона для оверлеев. Вот когда я застрял. Когда я нажимаю на миниатюру в 1-м xib-файле, как сказать 2-му xib-файлу сохранить оверлей в UIImageView?

Для камеры я использую

imageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];

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

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

Надеюсь, кто-нибудь может помочь. Большое спасибо.

Hakimo

Ответы [ 2 ]

2 голосов
/ 02 июня 2011

Я думаю, вы можете иметь два контроллера. Как вы сказали, первый будет статическим. Вы можете объявить второй контроллер как класс с выходами и ivars. Затем вы можете создавать экземпляры этого класса всякий раз, когда вы щелкаете по любому из двух элементов управления на первом контроллере с соответствующими IMageviews (или изображениями). Это просто концепция. Я полагаю, вы можете легко это кодировать.

2 голосов
/ 02 июня 2011

Вам не нужно вообще использовать xib в этой ситуации.Создайте UIImageView руками, установите его рамку и изображение, добавьте его в качестве подпредставления в ваш viewControllers.view.Вы можете иметь столько UIImageViews, сколько вам нужно.Сделайте их массив.Ваш случай, очевидно, является неправильным использованием концепции XIBS.Xib обычно используются, когда необходимо создать какой-то сложный вид со многими подпредставлениями, которые не будут использоваться в коде, такие как метки, декоративные изображения и т. Д.

CGRect frameForImage = CGRectMake(100, 100, 200, 300);
UIImageView *originalImage = [[UIImageView alloc] initWithFrame:frameForImage];
originalImage.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
[self.view addSubview:originalImage];
[originalImage release];

frameForImage.origin.x += 400;
UIImageView *resizedImage = [[UIImageView alloc] initWithFrame:frameForImage];
resizedImage.image = [info objectForKey:@"UIImagePickerControllerWhateverImage"];
[self.view addSubview:resizedImage];
[resizedImage release];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...