TextElements と ImageElements の配列を使用できる独自のマークアップ言語があるとします。これらはそれぞれ、「float: left/right/none」や「clear: none/left/right/both」などのプロパティを持つことができます。さらに、フローティングされていない要素は、フローティングされた要素の周りを流れることができます。基本的にはすべて CSS フロート レイアウトに似ています。
例えば:
Elem1 Elem2 Elem3 Elem4 Elem5 _ Elem6
レイアウト中にこれらの要素を格納するために使用する最適なデータ構造は何ですか? 次のような質問に簡単に答えられるものが必要です。
- Element1 の左または右に Element2 を収めるのに十分なスペースがありますか?
- Element1 のページ座標、原点、サイズは?
基本的に次のような構造を保存します。
{要素、原点(x、y)、サイズ(w、h)}
このデータ構造内の既にレイアウトされた各要素に対して。
RTree、QuadTree などがありますが、レイアウト アルゴリズムで使用するために、ページ上の四角形のレイアウトを抽象的に表現する単純なものが必要です。
注: 私は HTML でこれを行っていません。これは iOS アプリの要素のレイアウト用であり、以前の iOS バージョンをサポートする必要があるため、iOS 6 の制約を使用できません。
ありがとう!