2014-10-20 86 views
0

我正在动态创建多个按钮,现在我想为每个按钮设置操作。 当我按下它的显示结果在我的应用程序的下一个屏幕上。 我正在使用FMDB库从数据库中读取数据(按照按钮上的id读取数据库)。我知道如何从数据库读取数据库。我只想获取按钮上的数据,并在桌面视图上显示该数据。如何为每个按钮创建操作? 这是我的按钮代码:如何在ios中创建动作多个动态按钮?

-(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]; 

    } 
    } 

回答

0
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; 
    } 
+0

这多个按钮,但如何从明年screeen它的移动当我按下按钮 – 2014-10-20 15:25:31

+0

使用'@selector(testDoit)'。 。添加移动屏幕代码init – 2014-10-20 15:28:43

+0

'[button addTarget:self action:inSelector forControlEvents:UIControlEventTouchUpInside];' – 2014-10-20 15:29:28