iPhone: Как прокрутить произвольную высоту UIView в ScrollView? - PullRequest
0 голосов
/ 11 апреля 2011

У меня ScrollView и UIView созданы в конструкторе интерфейсов (но также могут быть и кодом).Я хочу добавить случайное количество миниатюр (подпредставлений) в UIView и иметь возможность прокручивать его вверх-вниз, если есть больше, чем экран может занять.Но я не могу заставить ScrollView прокручивать.

Где и как мне изменить размер UIView и добавить его в качестве подпредставления ScrollView?

Когда мне задать contentSize scrollView, чтобы он расширялся вместе с uiview?Я пытался создать фиксированный большой размер содержимого, но он не работал.

Какие свойства в IB мне нужно изменить, чтобы он работал?

Я хотел бы сделать изображения в uiviewкликабельна на следующем шаге.

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

Заранее спасибо!

Ответы [ 2 ]

3 голосов
/ 11 апреля 2011

// объявляем базовый вид

UIViewController *viewForLoadForm =[[UIViewController alloc] init];
viewForLoadForm.view.frame=CGRectMake(0, 0,screenSize.size.width,screenSize.size.height);
viewForLoadForm.view.backgroundColor=[UIColor blackColor];
[Manview.view addSubview:viewForLoadForm];

// объявляем scrollview и добавляем в базовый вид

UIScrollView *scrollview=[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, screenSize.size.width,screenSize.size.height)];
scrollview.indicatorStyle=UIScrollViewIndicatorStyleBlack;
[scrollview setContentSize:CGSizeMake(screenSize.size.width,screenSize.size.height)];
scrollview.clipsToBounds = NO;
scrollview.scrollEnabled = YES;
scrollview.pagingEnabled = NO;              scrollview.showsVerticalScrollIndicator =NO;
scrollview.alwaysBounceVertical= YES;
[viewForLoadForm.view addSubview:scrollview];

// Добавляем ваши элементы управления для просмотра изображений с помощью прокрутки или что-то, что необходимо для отображения

.........your control's code (textbox,imageview etc)

// взял позицию y последнего элемента управления и установил ваш K

float k = позиция y последнего элемента управления +100; (кое-что, что будет определять размер прокрутки)

// reassign the scrollview height
    [scrollview setContentSize:CGSizeMake(screenSize.size.width,k)];

использовать строку выше для настройки размера представления прокрутки во время выполнения.

screenSize.size.width составляет 320 здесь

1 голос
/ 11 апреля 2011

фрагмент кода,

- (void) createThumbView
{
    float y_axis = Set y axis;

    int x = 0;

    int totalImgs = total images;

    int tempCnt = 0;

    for (int i = 0; i < totalImgs;)
    {
        float x_axis = set x axis;

        int loopCount = 0;

        if (totalImgs - tempCnt >= (no of images in row))
        {
            loopCount = (no of images in row);
        }
        else
        {
            loopCount = totalImgs % (no of images in row);
        }

        for (int j = 0; j < loopCount; j++)
        {
            MasksData *mData = [masksList objectAtIndex:x];

            UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
            btn.frame = CGRectMake(x_axis, y_axis, width, height);
            [btn setImage:[UIImage imageNamed:[NSString stringWithFormat:@"%@.png",mData.bgImage]] forState:UIControlStateNormal];
            btn.backgroundColor = [UIColor  clearColor];
            btn.tag = x;
            [scroll View addSubview:btn];

            //photoCount++;
            x_axis += width + some space;

            tempCnt++;
            i++;
            x++;
        }

        y_axis += height + some space;

        scroll View.contentSize = CGSizeMake(320.0, y_axis);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...