使用 for 循环创建多个 UIImageView - iOS



我正在尝试向scrollView添加多个UIImageView。图像视图的数量不同。此编号是从文件中读取的。

所以现在我必须创建UIImageView *图像视图 1、UIImageView *图像视图 2 UIImageView *图像视图 3 ... UIImageView *图像视图N

如何将数字添加到 *图像视图(?

任何帮助将不胜感激

这不能按照你的想法来完成。 你应该做的是使用NSMutableArray,如下所示:

NSMutableArray *imageViews = [[NSMutableArray alloc] init];
for(NSInteger i=0; i < 10; i++)
{
    UIImageView *currentImageView = [[UIImageView alloc] initWithFrame:CGRectMake((0 * (110 * i)), 0, 100, 100)];
    [currentImageView setImage:[UIImage imageNamed:@"test.png"]];
    [imageViews addObject:currentImageView];
}

//To reference the image views just call objectAtIndex
UIImageView *imageView1 = [imageViews objectAtIndex:0];
UIImageView *imageView2 = [imageViews objectAtIndex:1];

这也使您的代码更加灵活。

添加到上面的代码片段:

 NSString *imageName = [NSString stringWithFormat@"test_%d.png", i];
 [currentImageView setImage:[UIImage imageNamed:imageName]];

因此,您可以添加具有不同图像的UIImageViews。

对于最近仍在搜索此主题的任何人来说,这是 Swift 3 版本,可以做@Siddharthan想要的事情:

    //you may give any Int value to these variables
    let Xposition = 19
    let Yposition = 19
    let imageWidth = 93
    let imageHeight = 128
    //create UIImageView object
    var curr_imageView = UIImageView()
    for i in 0 ..< images.count {
        if imageViews.isEmpty {
            curr_imageView = UIImageView.init(frame: CGRect(x: Xposition, y: Yposition, width: imageWidth, height: imageHeight))
        } else {
            curr_imageView = UIImageView.init(frame: CGRect(x: Int(imageViews[i-1].frame.origin.x)+Int(imageViews[i-1].frame.size.width), y: Yposition, width: imageWidth, height: imageHeight))
        }
        curr_imageView.image = UIImage(named: images[i])
        curr_imageView.contentMode = .scaleAspectFit
        self.scrollView1.addSubview(curr_imageView)
        imageViews.append(curr_imageView)
    }
    self.scrollView1.contentSize = CGSize(width: imageViews[imageViews.count-1].frame.size.width+imageViews[imageViews.count-1].frame.origin.x+CGFloat(Xposition), height: self.scrollView1.frame.size.height)

最新更新