如何使用for循环实时向UIScrollView添加许多UIButtons?

时间:2018-05-06 22:41:19

标签: ios objective-c

我有一个包含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];
    }

这会添加按钮,但我希​​望它们在添加时显示在视图上。或者,如果可能在视图加载之前预先加载按钮,那就太好了。

1 个答案:

答案 0 :(得分:3)

你不想以这种方式构建它。您应该考虑使用水平UICollectionView

如果你这样做,你就会将每张图片加载到内存中,这可能会有问题。通过使用集合视图,集合视图将仅在给定时间加载需要在屏幕上呈现的单元格,从而减少应用程序的内存占用量。它还会适当地设置集合视图的内容大小。