2016-07-26 9 views
0

Ich brauche dynamische Schaltfläche mit Array-Elementen erstellen. Auch Schaltfläche sind zeilenweise in ansteigender Reihenfolge wieHinzufügen mehrerer UIButton aus Array und screenboud

2 button 
3 button 
4 button 
5 button 

Mein Code:

- (void)viewDidLoad { 

    btn_array=[[NSMutableArray alloc]init]; 
    [btn_array addObject:@"Deepak Singh"]; 
    [btn_array addObject:@"Vikas Singh"]; 
    [btn_array addObject:@"Vipin Rawat"]; 
    [btn_array addObject:@"Deepak"]; 
    [btn_array addObject:@"Singh"]; 
    [btn_array addObject:@"Rawat"]; 
    [btn_array addObject:@"Vinita rawat"]; 
    [btn_array addObject:@"Vinod"]; 
    [btn_array addObject:@"OOP"]; 

    [self drawButtonsFromArray:btn_array]; 

     [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
} 



-(void)drawButtonsFromArray:(NSArray*)arr 

{ 
    UIScreen *mainScreen = [UIScreen mainScreen]; 


    int x=20 ,y=100; 

     for (int i=0; i<[arr count]; i++) 
     { 
      UIButton *btn=[[UIButton alloc]init]; 
      CGSize stringsize = [[arr objectAtIndex:i] sizeWithFont:[UIFont systemFontOfSize:14]]; 
      [btn setTitle:[arr objectAtIndex:i] forState:UIControlStateNormal]; 
      [btn setTitle:[arr objectAtIndex:i] forState:UIControlStateSelected]; 
      [btn setTitle:[arr objectAtIndex:i] forState:UIControlStateHighlighted]; 
      CALayer *btnLayer = [btn layer]; 
      [btnLayer setMasksToBounds:YES]; 
      [btnLayer setCornerRadius:10.0f]; 
      [btn setBackgroundColor:[UIColor redColor]]; 
      btn.titleLabel.adjustsFontSizeToFitWidth = YES; 


      [btn setFrame:CGRectMake(x,y,stringsize.width, 25)]; 

      int ww=x+btn.frame.size.width; 

      NSLog(@"X=====%d ",x); 

      NSLog(@"ww=====%d ",ww); 

      if (ww>=mainScreen.bounds.size.width) { 

      x=20; 
      y=y+35; 
       //[btn setFrame:CGRectMake(x,y,stringsize.width+15, 25)]; 

      } 
      else 
      { 

       x=x+btn.frame.size.width+5; 

      } 
      [self.view addSubview:btn]; 


     } 


} 

Meine Ausgabe zeigt enter image description here

+0

Ich bin nicht ganz sicher, was Ihre Frage ist. Um es anders auszudrücken, wollen Sie einfach eine Anzeige von Schaltflächen (die jeweils den Namenstext als Schaltflächenüberschrift anzeigen) in Zeilen, wobei die erste Zeile 2 Tasten hat, dann die zweite Zeile 3 Tasten hat, 3. hat 4 Tasten usw.? –

+0

ja richtig ich brauche das gleiche – iphonemaclover

+1

In diesem Fall, anstatt UIButtons zu erstellen, wäre es nicht besser, eine UICollectionView zu verwenden, den Namen auf jeder UICollectionViewCell zu drucken und die didSelectItemAtIndexPath: -Methode zu verwenden, um festzustellen, dass sie gedrückt wurden? Die Methode, mit der Sie 'sizeWithFont' verwenden, ist ebenfalls veraltet. Dies muss in die Methode 'boundingRectWithSize' geändert werden. Mit einer UICollectionView können Sie die Zellen viel einfacher in Zeilen platzieren. –

Antwort

Verwandte Themen