2

我试图理解以下问题。

我创建了一个这样的视图:

UIView *subNavigation = [[UIView alloc] initWithFrame:CGRectMake(0.0 0.0, 0.0, 70.0)];

之后,我正在循环运行以将按钮添加到该 subNavigation 视图,但我不想立即显示按钮:

for (int i = 0; i < 5; i++) {
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    button.frame = CGRectMake(leftOrigin, 0.0, 145.8, MENU_BUTTON_HEIGHT);
    leftOrigin += 145.8;

    [button setBackgroundColor:[UIColor whiteColor]];
    [button setTitle:@"Button Content" forState:UIControlStateNormal];
    [button setTitleColor:[UIColor yellowColor] forState:UIControlStateNormal];
    [button setTitleColor:[UIColor greenColor] forState:UIControlStateHighlighted];

    [button setTag:i];

    [subNavigation addSubview:button];

}

所以创建了宽度为 0.0 的 subNavigation。添加 subNavigation 时我不想看到按钮,但我愿意。如何使所有子视图调整到其父视图的框架宽度/高度?

非常感谢您的帮助!

4

1 回答 1

3

如果你唯一的目的是隐藏它的子视图,我不会像那样搞乱超级视图的框架。相反,我建议您使用[subNavigation setHidden:YES];. 这也将隐藏它的子视图。

但是,如果您坚持这种方法,我建议您按照@rokjarc 在他的评论中所说的那样做,并在超级视图的范围内工作。您还应该考虑裁剪 subNavigation 的子视图。

[subNavigation setClipsToBounds:YES];
于 2013-09-06T14:47:51.337 回答