我想在 UIScrollView
上制作单选按钮。当我尝试在 UIView
上创建它时,它可以完美运行,但是当我尝试在 UIScrollView
上创建时,相同的代码将用作复选框。那么有没有办法在UIScrollView
上制作单选按钮呢?
我正在将此代码用于 ScrollView
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;
}
}
最佳答案
ScrollView 应该是:
for (UIButton *but in [scrollview subviews]) {...
NOT: for (UIButton *but in [self.view subviews]) {...
关于iphone - 是否可以在 ScrollView 中制作单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7104249/