在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的垂直布局属性?或者为标签添加边距?
答案 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];
}