2015-09-22 2 views
1

Это мой код:Как добавить ярлык внутри бесконечной кнопки?

-(void)scrollView 
{ 
    NSInteger buttonCount = 0; 
    NSInteger buttonSize = 0; 
    int divisible= 0; 
    buttonCount=[[arrFullSubCategory valueForKey:@"name"]count]; 
    if(buttonCount==2) 
    { 
     divisible = 2; 
     buttonSize=self.view.frame.size.width/divisible; 
    } 
    else 
    { 
     divisible = 3; 
     buttonSize=self.view.frame.size.width/divisible; 
    } 

    [viewBtnScroll addSubview:self.scrollViewBtn]; 
    for(int i=0;i<buttonCount;i++) 
    { 
     self.scrollViewBtn.scrollsToTop=YES; 
     self.scrollViewBtn.directionalLockEnabled=YES; 
     self.automaticallyAdjustsScrollViewInsets = NO; 
     UIButton *btn; 
     btn=[[UIButton alloc]initWithFrame:CGRectMake(buttonSize*i,0,buttonSize,self.scrollViewBtn.frame.size.height)]; 
     [btn setTitle:[NSString stringWithFormat:@"%@",[[arrFullSubCategory objectAtIndex:i] valueForKey:@"name"]] forState:UIControlStateNormal]; 

     btn.userInteractionEnabled=YES; 
     NSInteger tag=[[[arrFullSubCategory valueForKey:@"category"] objectAtIndex:i] integerValue]; 
     [btn addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside]; 
     [btn setTag:tag]; 


highLight=[[UILabel alloc]initWithFrame:CGRectMake(buttonSize*i,10,btn.frame.size.width,20)]; 
     highLight.backgroundColor=[UIColor greenColor]; 
     highLight.hidden=YES; 
     [btn addSubview:highLight]; 
     [self.scrollViewBtn addSubview:btn]; 
     length = [[arrFullSubCategory valueForKey:@"name"] count]; 

    } 

    self.scrollViewBtn.contentSize=CGSizeMake(buttonSize*buttonCount, self.scrollViewBtn.frame.size.height); 
} 

1.That кнопку зависит на ближайшие значений JSon.

размер кнопки 2.That рассчитан для размера экрана.

3.i по какой-то причине создали ярлык как глобально, и добавили, что для подсмотра кнопки, изначально она скрыта, когда кнопка нажала эту конкретную метку кнопки hidden = NO;

4. Все, что я сделал отлично, но моя проблема заключается в том, как дать x.origin для конкретной метки?

5. Из моего кода этикетка присутствует только в конце кнопки не для всех.

6.Если я установил x.origin как 0, то его присутствовал только при начальной кнопке [первая кнопка].

7.That кнопка присутствует в Scrollview .....

ответ

0

решение Простейшее для этого было бы

  1. создать новый UIView (позволяет назвать его MyView) размера вы хотите.

  2. создать UILabel размера вы хотите, и х и у относительно MyView и добавить его в MyView

  3. Добавить MyView в свой UIScrollView.

  4. Затем создайте UIButton тех же размеров, как MyView и добавить его к вам же UIScrollView

Важно здесь вы кнопку добавить к вашему UIScrollView и не MyView

и вы хорошо go .. надеюсь, что это поможет ...

======= РЕДАКТИРОВАТЬ ======== Используйте код по мере необходимости

float width = GridScrollView.frame.size.width; 
    int i,k=0; 

    for (i= 0; i < imageArray.count; i+=4) { 

     for (int j =0; j<4; j++) { 


      if (i+j <nameArray.count) { 



       NSLog(@"i = %d j = %d k = %d",i,j,k); 
       UIActivityIndicatorView *spinner2 = [[UIActivityIndicatorView alloc]initWithFrame:CGRectMake((width/4)*j ,(width/4)*k , width/4, width/4)]; 

       [spinner2 startAnimating]; 
       [GridScrollView addSubview:spinner2]; 
       UIView *gridBox = [[UIView alloc]initWithFrame:CGRectMake((width/4)*j ,(width/4)*k , width/4, width/4)]; 
       //       gridBox.backgroundColor=[UIColor whiteColor]; 

       [GridScrollView addSubview:gridBox]; 



       UIView *labelBack = [[UIView alloc]initWithFrame:CGRectMake((width/4)*j ,(width/4)*k , width/4, width/16)]; 
       labelBack.backgroundColor=[UIColor blackColor]; 
       labelBack.alpha=0.5; 

       [GridScrollView addSubview:labelBack]; 


       UILabel *nameLabel = [[UILabel alloc]initWithFrame:CGRectMake((width/4)*j ,(width/4)*k , width/4, width/16)]; 
       nameLabel.text=nameArray[i+j]; 
       nameLabel.textAlignment = NSTextAlignmentCenter; 
       nameLabel.textColor=[UIColor whiteColor]; 
       nameLabel.font=[UIFont fontWithName:@"Arial" size:12]; 
       [GridScrollView addSubview:nameLabel]; 


       UIButton *gridButton = [[UIButton alloc]initWithFrame:CGRectMake((width/4)*j ,(width/4)*k , width/4, width/4)]; 
       [gridButton addTarget:self action:@selector(gridButtonTapped:) forControlEvents:UIControlEventTouchUpInside]; 
       gridButton.tag=i+j; 
       [GridScrollView addSubview:gridButton]; 



      } 

     } k++; 

    } 
    [GridScrollView setContentSize:CGSizeMake(width, (width/4)*(i/4))]; 

    [self.view addSubview:GridScrollView]; 
+0

saiyyad нет п количества нажатий кнопки не прокручивать, так что если я добавить метку, как подвид к кнопке, то это будет легко .... если я установить метку в UIView он будет статичным, не прокручивать .. . –

+0

Это будет ... Поместите цикл от нуля до array.count. и создавать представление каждый раз и добавлять его в scrollview. Подождите, позвольте мне опубликовать код для вас. :) –

+0

Был ли этот код полезен? @KishoreKumar –