3
我想在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;
}
}
我不明白你正在用'[self.view子視圖]'循環做。 'checkboxButton:'中的按鈕參數是其狀態需要切換的按鈕。只需'button.selected =!button.selected'就足夠了。 – Akshay
@Akshay:它是因爲你需要切換所有按鈕併爲單個按鈕設置狀態,這使得單選按鈕的外觀始終處於選中狀態 –
@shivangi:我認爲你的按鈕是滾動的子視圖視圖。迭代循環以獲取滾動視圖,然後獲取類型爲UIButton的scrollview的子視圖。如果你沒有得到它,然後留下評論,我會添加更多的信息。 –