Изменение кадров подпредставления в UIScrollView при повороте - PullRequest
0 голосов
/ 07 июля 2010

У меня есть строки подпредставлений в UIScrollView, которые я хочу переставить после поворота в альбомный режим. В идеале я хочу, чтобы в каждой строке было по 5 кнопок, а общее количество строк определяется высотой кнопок и количеством кнопок (плюс некоторые отступы).

Проблема, с которой я сталкиваюсь, заключается в том, как перебирать подпредставления, а также перебирать x-позицию для 5 кнопок в строке и затем изменять y-позицию после того, как я достигну 5-кнопочного предела, чтобы начать новую строку.

Прямо сейчас я могу перебирать подпредставления, но я не уверен, как автоматизировать установку фрейма для 5 на строку и затем изменение позиции y для начала новой строки. Любые предложения приветствуются!

for (UIView *subview in someScrollView.subviews)
{
        if (subview.tag >= 100) {

            [subview setFrame: CGRectMake(x, y, buttonWidth, buttonHeight)];
            NSLog(@"%.1f %.1f %d %d on subview %d", x, y, buttonWidth, buttonHeight, subview.tag);

        } 

}

1 Ответ

1 голос
/ 07 июля 2010

Я не понял это ... спасибо все равно.

Для портретного режима:

    for (UIView *subview in outletScrollView.subviews)
    {
        if (x <= 320 && subview.tag != 0) {

            [subview setFrame: CGRectMake(x, y, buttonWidth, buttonHeight)];
            //NSLog(@"%.1f %.1f %d %d on subview %d", x, y, buttonWidth, buttonHeight, subview.tag);

            x = x + buttonWidth + gapX;

            if (x == 320) {
                x = gapX;
                y = y + buttonHeight + gapY;
            }

        }

    }

Для ландшафтного режима:

    for (UIView *subview in outletScrollView.subviews)
    {
        if (x <= 480 && subview.tag != 0) {

            [subview setFrame: CGRectMake(x, y, buttonWidth, buttonHeight)];
            //NSLog(@"%.1f %.1f %d %d on subview %d", x, y, buttonWidth, buttonHeight, subview.tag);

            x = x + buttonWidth + gapX;

            if (x == 480) {
                x = gapX;
                y = y + buttonHeight + gapY;
            }

        }

    }
...