获取UIButton的标签和标签较小的标签

Ila*_*rio 0 objective-c uibutton ios

我不明白我想做的事情是否可能.

我在for循环中创建按钮:

CGRect rect2 = CGRectMake(50, 230, 40, 40);

for (int i = 0; i<5; i++) {

    NSString *stringI = [NSString stringWithFormat:@"%d",i+1];
    NSString *stringItouch = [NSString stringWithFormat:@"%dselected",i+1];

    UIButton *button = [[UIButton alloc] init];
    [button setBackgroundImage:[UIImage imageNamed:stringI] forState:UIControlStateNormal];
    [button setBackgroundImage:[UIImage imageNamed:stringItouch] forState:UIControlStateSelected];
    [button addTarget:self action:@selector(touchButton:) forControlEvents:UIControlEventTouchUpInside];
    button.tag = i+1;

    button.frame = rect2;
    rect2.origin.x = rect2.origin.x + 45;

    [scrollView addSubview:button];
}
Run Code Online (Sandbox Code Playgroud)

然后在方法中touchButton我得到触摸按钮的标签

-(void)touchButton:(id)sender {

   UIButton *buttonSender = sender;
   buttonSender.selected = YES;
   NSLog(@"button tag %@",buttonSender.tag);

   for (int i = buttonSender.tag-1; i>0; i--) {

      NSLog(@"int = %d",i); 
      //for example if buttonSender.tag is 4, in this way i have 3,2,1

   }
}
Run Code Online (Sandbox Code Playgroud)

在最后一个循环中,我想选择标签小于触摸标签的按钮(在本例中为3,2,1)

有可能吗?

谢谢大家

Eri*_*ric 5

你需要的viewWithTag:就像这样:

-(void)touchButton:(id)sender {

   UIButton *buttonSender = sender;
   buttonSender.selected = YES;
   NSLog(@"button tag %@",buttonSender.tag);

   for (int i = buttonSender.tag-1; i>0; i--) {

      NSLog(@"int = %d",i); 
      //for example if buttonSender.tag is 4, in this way i have 3,2,1

      /* Add this line */
      UIButton *tempButton = (UIButton *)[scrollView viewWithTag:i];
   }
}
Run Code Online (Sandbox Code Playgroud)