我是Objective C和IOS编程的新手,所以请耐心等待。
我从我的服务器获取一个JSON字符串,我用它来添加图像或按钮到我的视图我的视图是一个UIScrollView,
下面的代码效果很好,完全符合我的要求但是我只在循环完成后才看到所有按钮,这需要一些时间。
我期待的是看到每个按钮被逐个添加到视图中。有没有更好的方法来实现这个,或者这是我所描述的预期行为。
谢谢
for (NSDictionary *num in jsonOBJ) {
fullURL = [urlWithOut stringByAppendingString:[num objectForKey:@"src"]];
img = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL: [NSURL URLWithString:fullURL]]];
button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(3+i*h, 3+i*w,76, 76);
button.layer.borderWidth = 1.0;
button.layer.borderColor = [UIColor redColor].CGColor;
[button addTarget:self action:@selector(push:) forControlEvents:UIControlEventTouchUpInside];
[self.scroll addSubview:button];
[button setImage:img forState:UIControlStateNormal];
[img release];
NSString *string = @"";
NSString *realstring = [string stringByAppendingString: [num objectForKey:@"id"]];
button.tag = [realstring intValue];
self.scroll.contentSize = CGSizeMake(320,total);
}
答案 0 :(得分:1)
你需要在后台线程中运行图像加载过程,这应该解决它。我将解释 - 图像加载会在循环实际仍在运行时停止UI,添加带图像的按钮,但在加载所有图像之前它们不会显示。