Как правильно загрузить и заново отобразить новые изображения / данные после UIApplicationDidBecomeActiveNotification - PullRequest
0 голосов
/ 29 августа 2011

У меня есть UIViewController, который сначала настраивает представление и инициализирует некоторые HTTPRequests в -(void)viewDidLoad и в обратных вызовах для HTTP-запросов, где куча UIImageViews и UILabels и тому подобное динамически помещаются в UIView (они создан и выпущен сразу после addSubview).

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

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationBecomeActive) name:UIApplicationDidBecomeActiveNotification object:nil];

И метод теста работает нормально, но я застрял на лучшем способе показать новые данные.

Я думал о добавлении тегов к каждому объекту, которые могли бы измениться, а затем изменил его таким образом, но это похоже на кошмар управления. Я читал о [self.view setNeedsDisplay], но я не думаю, что это может работать в моей ситуации

1 Ответ

0 голосов
/ 29 августа 2011

setNeedsDisplay обновит UIView, который уже присутствует.Если у вас есть видимый UIImageView, измените изображение, которое он содержит, а затем вызовите [theImageView setNeedsDisplay], он будет делать то, что вы хотите.

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

Если вам действительно нужно удалить UIImageViews и поместить новые в родительское представление, также добавьте их в контейнер, такой как NSMutableArray илиNSSet.Затем вы можете выполнить итерацию в своем контейнере представлений изображений, отсоединить их от родительских представлений, удалить их из контейнера и затем освободить их.

...