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

コンテナがいっぱいになるまでサブビューを配置してから、次のコンテナに残りのビューを配置するというように、目的を達成するためにそれを適応させることができます。

ビューを垂直方向に積み重ねる必要があるだけの場合、これは目的を達成するのに十分簡単な方法のようです。

この関連する質問への回答は、 Cocoa Auto Layoutと呼ばれる 10.7 の機能に言及しています。これは、これを達成するためのより自動化された方法を提供する可能性があり、これらを 2D でレイアウトする必要がある場合は調査する価値があるかもしれません。

于 2012-08-28T15:44:18.213 に答える