UIScrollView внутри UIView

У меня есть проект, в котором у меня есть UIScrollView внутри UIView. Внутри UIScrollView должен быть виден список кнопок в 3 столбцах и X строках. У меня есть код, который отображает кнопки, но не вставляется в UIScrollView, он печатает и не прокручивается. Помимо этого, также закройте TabBar, который у меня есть в нижней части представления.

Код функции, отображающей кнопки:

for (int y_axis=0; y_axis<=3; y_axis++)
    {
        for (int x_axis=0; x_axis<=2; x_axis++)
        {

            UIButton *btn=[[UIButton alloc] initWithFrame:CGRectMake(16+100*x_axis,100.0+115*y_axis,88.0 ,88.0)];
            btn.backgroundColor=[UIColor brownColor];
            [self.view addSubview:btn];

        }
    }

Как я могу отобразить это в UIScrollView? Спасибо!!


person antonio__    schedule 14.05.2012    source источник


Ответы (4)


Предполагая, что у вас есть скроллер UIScrollView, вы должны изменить свою последнюю строку на это;

[self.scroller addSubview:btn];

Если нет, вы добавляете его в представление, а не в скроллер. Кроме того, вы должны изменить размер содержимого скроллеров, который равен X * Y, если он содержит. Чтобы он содержал весь экран и ничего больше;

[self.scroller setContentSize:CGSizeMake(320, 480)]
                                         ^     ^

Замените это на ширину и высоту, которые вы хотите прокрутить. Каждый раз, когда вы добавляете кнопку под новыми кнопками, вы должны обновлять размер содержимого.

person Martol1ni    schedule 14.05.2012
comment
он работает, но меняет в первой строке self.scroller на scroller. Спасибо! - person antonio__; 14.05.2012

Это потому, что вы добавляете кнопки на вид [self.view addSubview:btn];, а не на ScrollView. Попробуйте сделать вид со всеми кнопками. и установите свой вид с помощью кнопок как contentview вашего scrollview .

person Dream.In.Code    schedule 14.05.2012

сначала вам нужен UIScrollViewDelegate в вашем файле .h, а затем также проверьте, являются ли кнопки подвидом вашегоScrollView или нет, также вы добавляете эту кнопку в свой вид прокрутки с кодом, подобным этому ниже...

[yourScrollView addSubview:yourbuttonname];

после этого в вашем методе viewDidLoad объявите размер содержимого вашего прокрутки следующим образом...

yourScrollView.contentSize=CGSizeMake(320, anyheight);///here define height which you want to scroll the view...

надеюсь, это поможет вам .... :)

person Paras Joshi    schedule 14.05.2012

Попробуйте выполнить следующие действия:

    for loop
    {
        create buttons along with the desired frames;
        add those buttons to scrollview;
    }
    set the content size of the scrollview according to no of rows;
    add the scroll view to main view i.e. self.view;
person Harshit Gupta    schedule 14.05.2012