将子视图添加到 UIViews 数组?

Posted

技术标签:

【中文标题】将子视图添加到 UIViews 数组?【英文标题】:Adding subviews to an array of UIViews? 【发布时间】:2018-01-11 11:18:59 【问题描述】:

我有一个滚动视图,上面有一个主 UIView。这个主 UIView 中有一个 UIView 数组。

我想在这个子视图上添加一个测试视图

for (NSUInteger i = 0; i<self.maxPage+1; i++) 
        CanvasBaseView *view =[[CanvasBaseView alloc]initWithFrame:CGRectMake(0, (self.canvas.height.floatValue+NAPKIN_PADDING)*i, self.canvas.width.floatValue,self.canvas.height.floatValue)];
        [view addSubview:[self setDrawView:view]];
 

-(UIView*)setDrawView:(UIView *)main
    UIView *vw =[[UIView alloc]initWithFrame:main.frame];
    [vw setBackgroundColor:[UIColor blackColor]];
    return vw;

但是当我这样做时,只有第一个视图有我的新黑色背景视图。我用 2,6,10 的数组进行了尝试,所有这些都只填充了第一个视图

我也试过了

UIView *vw = [UIView new];
vw.frame = main.frame;
[vw setBackgroundColor:[UIColor blackColor]];
return vw;

不幸的是,结果相同。

【问题讨论】:

【参考方案1】:

如果我理解正确,您想为循环中的每个子视图添加黑色叠加层。在这种情况下,您应该使用父视图的 bounds 属性,因为子视图是相对于它的父视图。

改变这一行:

UIView *vw =[[UIView alloc]initWithFrame:main.frame];

到这里:

UIView *vw =[[UIView alloc]initWithFrame:main.bounds];

【讨论】:

以上是关于将子视图添加到 UIViews 数组?的主要内容,如果未能解决你的问题,请参考以下文章

Swift - 如何将点击手势添加到 UIViews 数组?

将 UIViews 作为子视图添加到 UIViewController [关闭]

iOS - 将子视图添加到子视图控制器视图

在 Interface Builder 中,如何将 UIViews 添加到属于我创建的自定义视图的子视图?

仅将子视图添加到当前视图的 UINavigationBar

将子视图添加到视图控制器