将子视图添加到UIViews数组中?

时间:2018-01-11 11:19:00

标签: ios objective-c arrays uiview

我有一个滚动视图,我有一个主要的UIView。这个主要的UIView中有一系列UIViews。

我想在此子视图上添加测试视图

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;

不幸的是同样的结果。

enter image description here

1 个答案:

答案 0 :(得分:0)

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

更改此行:

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

对此:

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