我有一个包含200多个项目的大型数组。每个项目都有一个与之关联的图像。每个图像都必须能够被点击。我将它们全部作为UIButtons添加到UIScrollView中。对于循环,我有以下代码:
for (NSString *item in items) {
UIButton *button = [[UIButton alloc] initWithFrame:(CGRectMake(xValue, 0, 70, 70))];
[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
[button setTag:(xValue/75)];
[button setImage:[UIImage imageNamed:[NSString stringWithFormat:@"%@.png",item]] forState:UIControlStateNormal];
xValue += 75;
[scrollView addSubview:button];
}
这会添加按钮,但我希望它们在添加时显示在视图上。或者,如果可能在视图加载之前预先加载按钮,那就太好了。
答案 0 :(得分:3)
你不想以这种方式构建它。您应该考虑使用水平UICollectionView
。
如果你这样做,你就会将每张图片加载到内存中,这可能会有问题。通过使用集合视图,集合视图将仅在给定时间加载需要在屏幕上呈现的单元格,从而减少应用程序的内存占用量。它还会适当地设置集合视图的内容大小。