以编程方式创建新的UiImageViews

时间:2011-10-10 21:05:49

标签: iphone objective-c ios xcode uiimageview

我想知道在运行时创建新的UIImageViews的循环。我希望每个UiImageView都有不同的名称。如果用户指定他们想要100个图像,则100个图像的大小适当地放置在屏幕的特定区域中。他们需要填满一个罐子。类似于星巴克移动卡应用程序明星部分,除了可能的图像无限制。

我该怎么做?

编辑:图像视图应该适合下面的罐子: Jar

由于

2 个答案:

答案 0 :(得分:1)

您可以使用UIImageView循环和for创建多个NSMutableArray,如下所示:

NSMutableArray *imagesArray = [[NSMutableArray alloc] init];
for (int i=0; i<100; ++i) {
    UIImageView *imgView = [[UIImageView alloc] init];
    // customize the UIImageView as you like
    [imagesArray addObject:imgView];
    [imgView release];
}

或者,如果名称很重要,则创建NSMutableDictionary并使用-addObject:forKey:UIImageView创建密钥@"imgName"的对象或您喜欢的任何名称。

答案 1 :(得分:0)

内存问题的底线:不要允许无限数量的图片。

  1. 如果图像正在填满一个罐子,为了逼真,你必须重叠。如果用户同时在屏幕上显示,则用户将无法看到100个不同的图像。

  2. 限制用户。您需要从头脑中获得无限的概念。那你应该没问题。你真正想要的是你的程序显示很多的图像。我不确定你是否打算允许缩放 - 这会使事情变得更复杂 - 但是在iPhone屏幕上以相同的尺寸显示的100个图像不包括你提到的jar是48像素乘32像素。那已经很小了。

  3. 我们确实需要更多信息,以便就如何解决此问题向您提供建议。你打算允许缩放吗?图像重叠与否?你想要的最小尺寸有多小?等等。

  4. 对于多个图像视图,PengOne是正确的。

    这会将图像添加到NSMutableArray。

    NSMutableArray *imagesArray = [[NSMutableArray alloc] init];
    for (int i=0; i<100; ++i) {
        UIImageView *imgView = [[UIImageView alloc] init];
        // customize the UIImageView as you like
        [imagesArray addObject:imgView];
        [imgView release];
    }
    
         

    (来自PengOne

    您当然必须使用循环将它们添加到屏幕上并最终将其从中删除。