在 for 循环内的 UIImageView 上添加 UILabel


SO

和网络上所有类似的问题都是关于在UIImageView上放置UILabel,这是我熟悉的,但是我必须在多个UIImageView上放置多个UILabel。每个UIImageView上一个。我有一个这样的 for 循环:

    for(int i=0;i < [arrURL count] ;i++)
    {
        UIImageView *view_Image = [[UIImageView alloc]initWithFrame:CGRectMake(x, y, 400, 180)];
        y = y + 182;
        view_Image.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:arrURL[i]]]];

        UILabel  *lblName = [[UILabel alloc] initWithFrame:CGRectMake(view_Image.frame.origin.x, view_Image.frame.origin.y, view_Image.frame.size.width, view_Image.frame.size.height)];
        [lblName setText:arrNames[i]];
        [view_Image addSubview:lblName];
        [mainScroll addSubview:view_Image];
    }
当我运行代码时,UILabel

只出现在第一个UIImageView上,其余的UIImageView出现在UILabel的顶部。(我是通过向UILabel添加背景颜色来发现的(。如何使UILabel出现在UIImageView上。提前谢谢。

视图的框架位于其超级视图的坐标系中。所以每个图像视图的框架都在mainScroll的坐标系中。

由于每个标签都是单独图像视图的

子视图,因此每个标签的框架都位于其父图像视图的坐标系中。但是你表现得好像标签的框架在mainScroll的坐标中。

UILabel  *lblName = [[UILabel alloc] initWithFrame:view_Image.bounds];

最新更新