gpt4 book ai didi

objective-c - 如何根据自动布局调整 subview subview 的大小?

转载 作者:行者123 更新时间:2023-12-03 17:33:48 38 4
gpt4 key购买 nike

我有一个 NSView 让我们在主视图 Controller 中调用此详细信息 View ,其中所有自动布局约束将独立于主视图添加。我将添加一个 subview ,让我们根据用户输入将此子详细信息调用到此详细信息 View 。该子详细信息 View 包含许多根据子详细信息 View 添加约束的 View 。在将子详细信息添加到详细信息 View 作为 subview 时,我通过获取详细信息 View 的框架并设置 x = 0 和y = 0;。我的问题是,当用户最大化窗口并选择时,我将子详细信息 View 添加到详细信息 View 子详细信息的大小 subview 保持不变,但子详细信息 View 会根据需要自动调整大小。任何人都可以指导我我做错了什么吗?下面我将向您分享我在链接中添加 subview 和输出 View 的代码 enter image description here我不想要空白的蓝色空间。

NSRect f = detailView.frame;
f.origin.x = 0;
f.origin.y = 0;
ConfigLogin *subDetail = [[ConfigLogin alloc] initWithFrame:f];
[subDetail setWantsLayer:YES];
[subDetail setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable];
[subDetail setTranslatesAutoresizingMaskIntoConstraints:YES];
subDetail.layer.backgroundColor = [NSColor blueColor].CGColor;
subDetail.frame = f;
[detailView addSubview:detailView];

最佳答案

我可以找到答案,因为在添加 subview 时我们没有添加约束以使 View 适合 super View 。

  +(void) fitSubViewToSuperView:(NSView *) subview superView:(NSView *) superView
{
NSLayoutConstraint *width = [NSLayoutConstraint
constraintWithItem:subview
attribute:NSLayoutAttributeWidth
relatedBy:0
toItem:superView
attribute:NSLayoutAttributeWidth
multiplier:1.0
constant:0];

NSLayoutConstraint *height = [NSLayoutConstraint
constraintWithItem:subview
attribute:NSLayoutAttributeHeight
relatedBy:0
toItem:superView
attribute:NSLayoutAttributeHeight
multiplier:1.0
constant:0];

NSLayoutConstraint *top = [NSLayoutConstraint
constraintWithItem:subview
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:superView
attribute:NSLayoutAttributeTop
multiplier:1.0f
constant:0.f];

NSLayoutConstraint *leading = [NSLayoutConstraint
constraintWithItem:subview
attribute:NSLayoutAttributeLeading
relatedBy:NSLayoutRelationEqual
toItem:superView
attribute:NSLayoutAttributeLeading
multiplier:1.0f
constant:0.f];
[superView addConstraint:width];
[superView addConstraint:height];
[superView addConstraint:top];
[superView addConstraint:leading];
}

关于objective-c - 如何根据自动布局调整 subview subview 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28448513/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com