如何显示几个子视图?

时间:2012-07-28 16:01:28

标签: objective-c ios

我认为这是一个新手问题...... 我已经创建了一个动态滚动视图,其中图像和标签以编程方式添加为子视图。问题是我只添加了作为子视图添加的最后一个。 此外,当我读到“addSubview:”时,它说“将视图添加到接收者的子视图列表的末尾。”这是否意味着只有最后添加的子视图才会显示?在这种情况下,我如何使两者都可见?

提前致谢, 汤姆

CODE:

for(int i = 0; i < [famorableArray count]; i++){

    UIButton *famorableButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [famorableButton setFrame:CGRectMake(0.0f, 5.0f, 57.0f, 57.0f)];
    [famorableButton setImage:personLogo forState:UIControlStateNormal]; 

    NSString *famString = [NSString stringWithFormat:@"%@", [[[famorableArray objectAtIndex:i] substringFromIndex:8] capitalizedString]];
    NSLog(@"%@", famString);
    UILabel *famLabel = [[UILabel alloc] initWithFrame:CGRectZero];
    famLabel.text = famString;
    NSLog(@"Test2 %@", famLabel.text);

    // Move the buttons position in the x-demension (horizontal).
    CGRect btnRect = famorableButton.frame;
    btnRect.origin.x = totalButtonWidth;
    [famorableButton setFrame:btnRect];

    CGRect labelRect = famLabel.frame;
    labelRect.origin.x = totalButtonWidth + 28.5f;
    [famLabel setFrame:btnRect];


    // Add the button to the scrollview
    [famScroll addSubview:famLabel];
    [famScroll addSubview:famorableButton];

    // Add the width of the button to the total width.
    totalButtonWidth += famorableButton.frame.size.width + 30;

}
[famScroll setContentSize:CGSizeMake(totalButtonWidth, 79.0f)];

2 个答案:

答案 0 :(得分:1)

对于每个添加的子视图,您必须设置frame属性。框架是视图在超视图中的位置。 “添加到子视图列表”并不意味着任何自动布局。因此,我假设所有子视图都可见但重叠。

答案 1 :(得分:0)

我的不好......复制粘贴后编辑失败。意外地使用btnRect作为标签的框架。非常感谢你的努力@Martin:)