2012-05-19 3 views
0

теперь я могу отобразить UIImageView, что находится в пределах массива, но используя следующие:Обновление UIImage в выстроил UIImageView

[[self.guess objectAtIndex:1] setFrame:CGRectMake(20, 20, 100, 100)]; 
[self.view addSubview:[self.guess objectAtIndex:1]]; 

Если я хочу, чтобы изменить изображение в одном из моих UIImageViews в пределах массива я могу использовать :

[self.guess replaceObjectAtIndex:1 withObject:Square]; 

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

[[self.guess objectAtIndex:1] removeFromSuperview]; 
[self.view addSubview:[self.guess objectAtIndex:1]]; 

Проблема в том, что мой новый subview не наследует положение кадра и размер исходного изображения (так как это могло измениться). Есть ли способ сделать это проще?

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

[self.guess.image replaceObjectAtIndex:1 withObject:Square.image]; 

Еще раз спасибо!

ответ

1

Можно ли хранить только изображения в массиве и иметь только один UIImageView? Затем просто замените изображение внутри элемента UIImageView

0

Не знаю, если вы пробовали это еще, но это должно сработать.

UIImageView *img = (UIImageView *)[self.guess objectAtIndex:1]; 
img.image = Your Image; 
+0

я мог иметь один вид и сохранять изображения в массиве, но я 'd, тогда придется переписать много кода. Я попробовал вариант ответа Brandons: UIImageView * test = [self.guess objectAtIndex: 1]; self.Square.frame = test.frame; и это, кажется, оборачивает мою проблему, хотя ее все еще долгий ветер! Спасибо! – Synchro

1

Что Раду уже сказал, лучше сохранить массив изображений или изображений. Тогда вам также не нужно удалять изображениеView из супервизора, вы просто повторно используете один и только один ImageView.

Так что вы оставили что-то вроде этого

yourImageView.image = [self.guess objectAtIndex:1]; 

И если вы только сохранить имена в массиве

yourImageView.image = [UIImage imageNamed:[self.guess objectAtIndex:1]]; 
Смежные вопросы