2016-12-19 3 views
0
in ios

this is what I wantKnopf entsprechend Erstellen Durch UITextField

I-Taste nach auf Tableview an Benutzer Tippen erstellen möchten suchen, ich habe diese Methode verwenden, aber es wird meine Tasten überlappen, bedeutet, wenn die zweite Taste erstellt es schaffen auch eine Knopf auf dem ersten Knopf, wie kann ich das erreichen. Button-Erstellung wäre eins zu eins nicht durch Mehrfachauswahl.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath: (NSIndexPath *)indexPath 
{ 

self.searchText.text = [NSString stringWithFormat:@"%@",[_sortedArray objectAtIndex:indexPath.row]]; 
self.tableView.hidden = YES; 

[_selectednames addObject:_searchText.text]; 

    [self makeLabelsAndButtons:_selectednames]; 

    // } 

self.searchText.text = nil; 

} 


-(void)makeLabelsAndButtons:(NSMutableArray *)arrButton{ 

int y=10; 
int x=10; 

for (int i=0; i<[arrButton count]; i++) { 
    CGRect screenRect=[[UIScreen mainScreen]bounds]; 
    CGFloat screenWidth=screenRect.size.width; 

    // [_arrBtnStatus addObject:[NSNumber numberWithInt:i]]; 


    NSString *strNames=[arrButton objectAtIndex:i]; 
    CGSize stringsize=[strNames sizeWithAttributes: 
       @{NSFontAttributeName: [UIFont systemFontOfSize:12.0f]}]; 
    UIButton *btn=[UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    CGFloat m=x+stringsize.width+30; 
    CGFloat n=screenWidth-20; 

    if (m<=n) { 
     btn.frame=CGRectMake(x, y,stringsize.width,stringsize.height); 
     x=x+stringsize.width +10; 

    } 
    else 
    { 
     y=y+stringsize.height+10; 
     x=20; 
     btn.frame=CGRectMake(x, y,stringsize.width,stringsize.height); 
     x=x+stringsize.width+10; 
    } 

    [btn setTitle:arrButton[i] forState:UIControlStateNormal]; 
    [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 
    btn.tag=i; 
    [btn addTarget:self 
      action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside]; 

    btn.backgroundColor = [UIColor lightGrayColor]; 

    btn.layer.cornerRadius=10; 
    [btn.layer setMasksToBounds:YES]; 

    [self.buttonView addSubview:btn]; 
} 
+0

Aktualisieren Sie Ihre Frage mit Ihrer Ausgabe, was Sie wollen und was Sie bekommen. –

+0

Bitte geben Sie uns weitere Informationen. Wo willst du einen neuen Button sehen? Warum brauchst du verschiedene Knöpfe? Ein schneller Entwurf wäre auch eine gute Idee. –

+0

Ich habe meine Frage mit Bildern bearbeitet .... Jetzt schlagen Sie etwas vor – Nivesh

Antwort

0

Den selectednames Array, wenn die Zelle für Zeile am indexPath runs.i.e initialisieren das Array in diesem function.In auf diese Weise initialisiert es nur ein Element entsprechend ausgewählte Zeilen hinzufügen. In Ihrem Code fügen Sie Objekt zu der gleichen Array.Thats, warum es vorherige Schaltfläche auch

+0

können Sie meinen Code erklären oder redigieren. – Nivesh

+0

[_selectednames addObject: _searchText.text]; –

+0

Sie fügen in diesem Array immer dann ein, wenn der Benutzer auf Zelle klickt. Und auf dieser Basis Schaltflächen erstellen. Im Grunde genommen fügen Sie immer etwas in das Array ein. Initialisieren Sie dieses Array ganz oben in Ihrem cellforrow-Code, und es wird genauso funktionieren wird immer ein neues Array erstellen, wenn der Benutzer auf Zelle –

Verwandte Themen