简体   繁体   中英

how to create action multiple dynamic buttons in ios?

i am creating multiple buttons dynamically now i want to set action for each buttons. when i press buttons its show result on next screen in my application . i am using FMDB library to read data from database.(read database according to id on buttons press). i know how to read database from database . i want only fetch data on buttons press and display that data on table view .how to create action for each buttons? this my buttons code :

 -(void)DynamicButton:(NSMutableArray*)objectName
    {
     for(UIView *view in [scrollView subviews])
      {
        [view removeFromSuperview];
      }
      int yPossion = 100, xPossion = 44; int temp = 0;


      for (int i = 0; i<[objectName count]; i++)
     {
    SMSCategory *cat = [objectName objectAtIndex:i];

    UIButton *aButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [aButton setTag:i];
    [aButton setTranslatesAutoresizingMaskIntoConstraints:YES];
    [aButton setBackgroundColor:[UIColor blackColor]];
    [aButton setBackgroundImage:[UIImage imageNamed:@"icon-menu.png"]  
    forState:UIControlStateNormal];

    [aButton setTitle:[NSString stringWithFormat:@"%d",i] 
    forState:UIControlStateNormal];

    [aButton setFrame:CGRectMake(xPossion, yPossion, 70, 60)];
     aButton.highlighted=YES;

    [scrollView addSubview:aButton];

    ;

    xPossion += aButton.frame.size.width+35;
    temp++;
    if (temp==3)
    {
        yPossion = aButton.frame.origin.y+aButton.frame.size.height+20;
        temp = 0;
        xPossion = 44;
        yPossion += aButton.frame.size.width-15;
        [scrollView setContentSize:CGSizeMake(scrollView.frame.size.width ,yPossion-
       50)];
    }

    UILabel *label =  [[UILabel alloc] init];
    [label setTranslatesAutoresizingMaskIntoConstraints:YES];

    [label setText:cat.Name];
    [label setTextColor:[UIColor blackColor]];
    label.font = [UIFont systemFontOfSize:12];

    [label sizeToFit];

    [label setFrame:CGRectMake(4, 44, 70, 60)];
    [scrollView addSubview:label];
    [aButton addSubview:label];

   }
   }
UIButton *test = [self buttonWithTitle:@"test" target:self selector:@selector(testDoit) frame:CGRectMake(self.view.center.x-50, 270.0, 100.0, 50.0) : 12];


    - (UIButton *)buttonWithTitle:(NSString *)title target:(id)target selector:(SEL)inSelector frame:(CGRect)frame :(int)fontSize{
        UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        [button setFrame:frame];
        [button setTitle:title forState:UIControlStateNormal];
        button.titleLabel.font = [UIFont boldSystemFontOfSize:fontSize];
        button.userInteractionEnabled = YES;
        button.titleLabel.textAlignment = UITextAlignmentCenter;
        button.titleLabel.lineBreakMode   = UILineBreakModeTailTruncation;
        button.titleLabel.shadowOffset    = CGSizeMake (1.0, 0.0);
        button.titleLabel.textColor = [UIColor blackColor];
        button.showsTouchWhenHighlighted = YES;
        button.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleWidth |UIViewAutoresizingFlexibleRightMargin|
        UIViewAutoresizingFlexibleTopMargin|
        UIViewAutoresizingFlexibleHeight|
        UIViewAutoresizingFlexibleBottomMargin;
        [button addTarget:self action:inSelector forControlEvents:UIControlEventTouchUpInside];
        //[button autorelease];
        return button;
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM