0

私のビューにはコントロールがあります。すべてのオブジェクトの幅と高さは異なります。これらのオブジェクトの配列があります。オブジェクトが現在の行に収まらない場合 (メモ帳やテキスト編集など)、オブジェクトを新しい行に移動する再帰関数を記述する必要があります。

現在のオブジェクトを配列からサイクルでチェックする必要があると思います。幅に収まる場合は操作を行わず、現在のビュー (行) の幅に収まらない場合は再帰を行う必要があります。私は正しいですか?配列にオブジェクトがある間に、オブジェクトを新しい行に移動します。

4

1 に答える 1

1

次のように実行できます (すべてが 0.0 から始まると仮定します)。

    NSArray* your_elements = ... //your elements in an NSArray (labels, buttons any type of views)

    CGFloat currentX = 0.0;
    CGFloat currentY = 0.0;

    CGFloat maxX = 320.0;
    CGFloat lineHeight = 12.0;

    for (UIView* some_view in your_elements) {
        CGRect newframe = some_view.frame;
        newframe.origin.x = currentX;
        newframe.origin.y = currentY;

        currentX += newframe.size.width;
        some_view.frame = newframe;

        if (currentX>maxX) {
            currentX = 0.0;
            currentY += lineHeight;
        }
    }
于 2012-10-30T14:13:28.233 に答える