0

我想将几个视图链接在一起,并让内容自动从一个视图流到下一个视图。想想文本容器是如何工作的,以及它们的内容如何跨越容器。有谁知道如何做到这一点?

4

1 回答 1

0

您可以使用管理一组容器视图的布局管理器从头开始构建类似的东西。

此代码旨在垂直调整容器的大小以容纳其子视图:

+ (void)setAndArrangeSubviews:(NSArray *)subviews inView:(NSView *)superview {
    [superview setSubviews:subviews];

    NSRect superviewFrame = [superview frame];
    CGFloat y = superviewFrame.size.height;
    for (NSView *subview in subviews) {
        NSRect subviewFrame = [subview frame];
        subviewFrame.origin.y = (y -= subviewFrame.size.height);
        [subview setFrame:subviewFrame];
    }
}

你可以调整它来完成你想要的:在容器中排列子视图直到它满了,然后在下一个容器中排列剩余的视图。

如果您只需要垂直堆叠视图,这似乎是一种很简单的方法来完成您想要的。

这个相关问题的答案是指 10.7 中的一个名为Cocoa Auto Layout的特性,它可能会提供一种更自动化的方式来完成此任务,如果您需要以 2D 的形式布置它们,这可能值得研究。

于 2012-08-28T15:44:18.213 回答