【问题标题】:How to create grid of UIImageView dynamic using for loop?如何使用 for 循环创建 UIImageView 动态网格?
【发布时间】:2014-05-04 22:38:27
【问题描述】:

我想使用 for 循环创建一个动态网格,但我做不到。我在这里创建了演示,但它不起作用,我无法理解它的逻辑,因为我是新手。

重要的是我必须使用 for 循环而不是其他循环。所以请给我任何使用 for 循环的解决方案。这是在我的 viewDidLoad 方法中。

int x=5;
int y=5;
int hei=50;
int wid=50;

for (int i=0; i<3; i++) 
{
    for(int j=0;j<3;j++)
    {
        if (i==0 && j==0)
        {
            imageView1 = [[UIImageView alloc]initWithFrame:CGRectMake(x, y, wid, hei)];
            [imageView1 setImage:[UIImage imageNamed:@"Motocross.png"]];
            [self.view addSubview:imageView1];                        
        }
        else 
        {
            imageView1 = [[UIImageView alloc]initWithFrame:CGRectMake(x+wid+5, y+hei+5, wid, hei)];
            [imageView1 setImage:[UIImage imageNamed:@"Motocross.png"]];
            [self.view addSubview:imageView1];
        }

    }   
}

我想创建动态网格,UIimageView 的大小为 50*50,UIImageView 之间的空间为 5。所以在演示中我只生成 3*3 网格(与移动设备中的图库相同)。

【问题讨论】:

    标签: ios iphone for-loop uiimageview logic


    【解决方案1】:

    请尝试此代码,它适用于 2*2 网格。并根据您的要求进行更改

        -(void)loadThumbScroll{
    
        UIButton *button;
    
        NSUInteger n = [arrimg count];
        int i=0,i1=0;
    
        while(i<n){
            int yy = 15 +i1*90;
            int j=0;
    
            //this is for column
            for(j=0; j< 2;j++){
    
                if (i>=n) break;
                CGRect rect = CGRectMake(15+150*j, yy, 140, 80);
                imageView1 = [[UIImageView alloc]initWithFrame: rect];];
                    [imageView1 setImage:[UIImage imageNamed:@"Motocross.png"]];
                        [self.view addSubview:imageView1];   
    
                i++;
    
            }
            i1 = i1+1;
        }
    
        [thumbScrollView setContentSize:CGSizeMake(thumbScrollView.frame.size.width, button.frame.origin.y+button.frame.size.height+20)];
    
    }
    

    【讨论】:

      【解决方案2】:

      您只生成 3x3 网格,因为这是循环初始化中定义的值,如果您想要更大的网格,只需更改这些值,例如 5x5 网格:

      int x=5;
      int y=5;
      int hei=50;
      int wid=50;
      
      for (int i=0; i<5; i++)
      {
          for(int j=0;j<5;j++)
          {
              imageView1 = [[UIImageView alloc]initWithFrame:CGRectMake((x+wid)*i, (y+hei)*j, wid, hei)];
              [imageView1 setImage:[UIImage imageNamed:@"Motocross.png"]]
              [self.view addSubview:imageView1];
      
          }   
      }
      

      【讨论】:

      • 谢谢!这段代码很简单,现在我理解了逻辑。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-20
      • 2020-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-06
      • 2020-09-28
      相关资源
      最近更新 更多