是否可以在滚动视图上制作单选按钮

问题描述:

我想在UIScrollView上制作单选按钮。当我试图使它在UIView然后它完美的作品,但当我试着UIScrollView那么相同的代码将作为复选框。那么有什么方法可以在UIScrollView上制作单选按钮?是否可以在滚动视图上制作单选按钮

我使用这个代码了滚动

for (int i = 0; i < 5; i++) { 
     UIButton *but = [UIButton buttonWithType:UIButtonTypeCustom]; 
     [but setImage:[UIImage imageNamed:@"emptycheckbox.png"] forState:UIControlStateNormal]; 
     [but setImage:[UIImage imageNamed:@"checkbox.png"] forState:UIControlStateSelected]; 
     [but setFrame:CGRectMake(0, 0, 40, 33)]; 
     [but setCenter:CGPointMake(50, i*40+20)]; 
     [but addTarget:self action:@selector(checkboxButton:) forControlEvents:UIControlEventTouchUpInside]; 
     [scrollView addSubview:but]; 

     scrollView.showsVerticalScrollIndicator = NO; 
     [scrollView setContentSize:CGSizeMake(200,1000)]; 
    } 


- (IBAction)checkboxButton:(UIButton *)button{ 

    for (UIButton *but in [self.view subviews]) { 
     if ([but isKindOfClass:[UIButton class]] && ![but isEqual:button]) { 
      [but setSelected:NO]; 
     } 
    } 
    if (!button.selected) { 
     button.selected = !button.selected; 
    } 
} 

我一个使用此代码为UIView

for (int i = 0; i < 5; i++) { 
     UIButton *but = [UIButton buttonWithType:UIButtonTypeCustom]; 
     [but setImage:[UIImage imageNamed:@"emptycheckbox.png"] forState:UIControlStateNormal]; 
     [but setImage:[UIImage imageNamed:@"checkbox.png"] forState:UIControlStateSelected]; 
     [but setFrame:CGRectMake(0, 0, 40, 33)]; 
     [but setCenter:CGPointMake(50, i*40+20)]; 
     [but addTarget:self action:@selector(checkboxButton:) forControlEvents:UIControlEventTouchUpInside]; 
     [self.view addSubview:but]; 


    } 


- (IBAction)checkboxButton:(UIButton *)button{ 

    for (UIButton *but in [self.view subviews]) { 
     if ([but isKindOfClass:[UIButton class]] && ![but isEqual:button]) { 
      [but setSelected:NO]; 
     } 
    } 
    if (!button.selected) { 
     button.selected = !button.selected; 
    } 
} 
+0

我不明白你正在用'[self.view子视图]'循环做。 'checkboxButton:'中的按钮参数是其状态需要切换的按钮。只需'button.selected =!button.selected'就足够了。 – Akshay

+0

@Akshay:它是因为你需要切换所有按钮并为单个按钮设置状态,这使得单选按钮的外观始终处于选中状态 –

+0

@shivangi:我认为你的按钮是滚动的子视图视图。迭代循环以获取滚动视图,然后获取类型为UIButton的scrollview的子视图。如果你没有得到它,然后留下评论,我会添加更多的信息。 –

了滚动应该是:

for (UIButton *but in [scrollview subviews]) {... 

NOT: for (UIButton *but in [self.view subviews]) {... 
+0

谢谢你的工作 – shivangi