iOS - addSubview没有重叠

时间:2015-12-09 23:52:06

标签: ios objective-c uiscrollview

在for循环中,我正在尝试根据用户给出的数字将标签添加到ScrollView。这是Objective-C中的代码:

NSInteger numberOfViews = [self.textfieldNumViews.text intValue];
for (int i = 0; i < numberOfViews ; i++){
    UILabel *label = [[UILabel alloc] initWithFrame: CGRectMake(0, 0, 300, 12)];
    label.text = [NSString stringWithFormat:@"%d",i];
    label.backgroundColor = [UIColor lightGrayColor];
    [self.scrollviewViewContainer addSubview:label];
}

问题是标签在ScrollView内部相互重叠,当我真的希望它们只是一个接一个地显示时。 Image我知道这是由于addSubview的行为,将视图放在其他视图之上,但有什么方法可以阻止它吗?还是我可以使用的其他功能?我觉得这应该是一件容易的事,但我似乎无法弄明白。有没有像我可以添加到ScrollView的垂直布局属性?或者为标签添加边距?

1 个答案:

答案 0 :(得分:0)

您需要为每个子视图设置较低的y。检查第三行:

NSInteger numberOfViews = [self.textfieldNumViews.text intValue];
for (int i = 0; i < numberOfViews ; i++){
    UILabel *label = [[UILabel alloc] initWithFrame: CGRectMake(0, (i*20), 300, 12];
    label.text = [NSString stringWithFormat:@"%d",i];
    label.backgroundColor = [UIColor lightGrayColor];
    [self.scrollviewViewContainer addSubview:label];
}