2013-09-10 2 views
1

У меня есть UIScrollView, который будет расширяться в зависимости от того, сколько кнопок оно должно отображать. Он всегда округляется до ближайшего 320 многократного.UIScrollView распределяет UIButtons по горизонтали

Таким образом, если UIScrollView получит 3 кнопки будет 320px по горизонтали, если он получил 6 то 640px, 9 960.

Что мне нужно сделать, это распространять UIButtons через эту UIScrollView равномерно .. Однако Я не могу понять, как это сделать.

My UIButtons измерение 80 пикселей по горизонтали.

Мог ли кто-нибудь помочь мне разобраться с этим?

Обновление/разъяснение: У меня нет проблем с настройкой ширины UIScrollView. Это было сделано. Я ищу информацию о том, как распределить «UIButtons» в «UIScrollView» ..

+0

Возможно, вы имели в виду увеличение прокручиваемой области? – Rakesh

+0

просто нужно изменить contentisize scrollView –

+0

Вы используете пейджинг в scrollview. – Imran

ответ

0
[theScrollView setContentSize:CGSizeMake(320/640/960, theScrollView.frame.size.height)]; 
+0

Хей, может быть, я не был ясен. Я знаю, как создать правильный размер прокрутки, я ищу информацию о том, как распространять UIButton через UIScrollView. Спасибо в любом случае! –

0
//considering a margin of 10 pts on either edges and a additional 10 pts on each side of button 

Добавьте кнопки, как показано ниже:

for(int i=0; i< buttonCount;i++){ 
    CGRect buttonFrame = CGRectMake(10 + i*(80+10+10) +10 , buttonY, 80, buttonHeight); 
    UIButton *button = [UIButton buttonWithType:<type>]; 
    button.frame = buttonFrame; 
} 

//To set the scrollable area 

[scrollView setContentSize:CGSizeMake(10 + buttonCount*(80+10+10) +10, 0)]; 
//left margin + buttonCount x (buttonWidth + leftButtonMargin+rightButtonMargin) + right margin 

Это должно дать вам почти равномерно распределенных кнопок в соответствии с количеством кнопок.

0

Вы можете использовать следующее: Использовать MyScrollView.pagingEnabled = YES.

int PageNum=0; 

if(TotalButtons%3 >0) 
{ 
    pageNum=TotalButtons/3; 
    pageNum++; 
} 
else{ 
PageNum=TotalButtons/3; 
} 

[MyScrollView setContentSize:CGSizeMake(320*pageNum, MyScrollView.frame.size.height)]; 

Добавить кнопки в соответствии с шириной и интервалом, которые вы хотите на прокрутке.

Edit:

int x=56; 
    int y=60; 

    for(int i=1;i<= 60;i++) 
    { 
     UIButton *button=[UIButton buttonWithType:UIButtonTypeRoundedRect]; 
     button.frame=CGRectMake(x, y, 200, 120); 
     button.tag=i; 
     // [button setTitle:[NSString stringWithFormat:@"Video-%d",i+1] forState:UIControlStateNormal]; 
     [button setBackgroundImage:[UIImage imageNamed:@"220x200.png"] forState:UIControlStateNormal]; 
     [button addTarget:self action:@selector(ButtonAction:) forControlEvents:UIControlEventTouchUpInside]; 
     [VideoStoreScroll addSubview:button]; 

     if(i%6==0) 
     { 
      count++; 

      x=(count-1)*VideoStoreScroll.frame.size.width+56; 

      y=50; 
     } 
     else 
     { 
      if(i%3==0) 
      { 
       x=(count-1)*VideoStoreScroll.frame.size.width+56; 
       y=y+190; 
      } 
      else 
      { 
       x=x+256; 
      } 
     } 
    } 

    VideoStoreScroll.contentSize=CGSizeMake(x-56, 480); 
    VideoStoreScroll.contentOffset=CGPointMake(0, 0); 

Здесь я использую шесть кнопок горизонтально прокрутки на page.You может работать в течение трех следующих вариантов.

0

Сначала возьмите все кнопки в array..lets говорят buttonsArray

int spacing = 10;  // Adjust according to you requirement 
int buttonWidth = 100; // Adjust according to you requirement 
int buttonHeight = 100; // Adjust according to you requirement 
int count = 0; 

for (UIButton *thisButton in buttonsArray) { 
    [thisButton setFrame:CGRectMake(spacing*(count+1)+count*buttonWidth, 20, buttonWidth, buttonHeight)]; 
    count++; 
} 

[theScrollView setContentSize:CGSizeMake([[buttonsArray lastObject]frame].origin.x+[[buttonsArray lastObject]frame].size.width+spacing, 0)]; 

Надеюсь, что это поможет.Я протестировал его ...

Смежные вопросы