如何在UIApplicationDidBecomeActiveNotification之后正确下载和重新显示新图像/数据

时间:2011-08-29 06:37:55

标签: objective-c cocoa-touch refresh nsnotificationcenter

我有一个UIViewController,它首先设置视图并在-(void)viewDidLoad和HTTPrequests的回调中初始化一些HTTPRequests,这是一堆UIImageViews和UILabels等动态放入UIView的地方(它们是在addSubview)之后立即创建和发布的。

我想要的是我的ViewController在用户按下主页按钮并再次打开应用程序时使用更新的图像/文本“刷新”。我从

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

测试方法运行正常,但我仍然坚持使用显示新数据的最佳方式。

我想到为每个可能改变的对象添加标签,然后像这样改变它,但这似乎是一个管理噩梦。我读到[self.view setNeedsDisplay],但我认为这不适用于我的情况

1 个答案:

答案 0 :(得分:0)

setNeedsDisplay将刷新已存在的UIView。如果你有一个可见的UIImageView,更改它包含的图像,然后调用[theImageView setNeedsDisplay]它会做你想要的。

您是否真的需要以编程方式始终创建一堆新的UIImageViews,或者在更改所显示的图像时是否可以永久地创建一些UIImageView?

如果确实需要删除UIImageViews并在父视图中放置新的UIImageViews,也可以将它们添加到像NSMutableArray或NSSet这样的容器中。然后,您可以遍历容器的图像视图,将它们从父视图中分离出来,从容器中删除它们然后释放它们。