【问题标题】:Adjust Subviews Size To Superview Frame将子视图大小调整为超级视图框架
【发布时间】:2013-09-06 14:43:40
【问题描述】:

我正在尝试理解以下问题。

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

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];

}

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

非常感谢您的帮助!

【问题讨论】:

    标签: ios objective-c uiview


    【解决方案1】:

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

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

    [subNavigation setClipsToBounds:YES];
    

    【讨论】:

    • 谢谢!!我只需要 setClipsToBounds!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多