2011-08-18 54 views
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; 
    } 
} 
+0

我不明白你正在用'[self.view子視圖]'循環做。 'checkboxButton:'中的按鈕參數是其狀態需要切換的按鈕。只需'button.selected =!button.selected'就足夠了。 – Akshay

+0

@Akshay:它是因爲你需要切換所有按鈕併爲單個按鈕設置狀態,這使得單選按鈕的外觀始終處於選中狀態 –

+0

@shivangi:我認爲你的按鈕是滾動的子視圖視圖。迭代循環以獲取滾動視圖,然後獲取類型爲UIButton的scrollview的子視圖。如果你沒有得到它,然後留下評論,我會添加更多的信息。 –

回答

0

了滾動應該是:

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

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

謝謝你的工作 – shivangi

相關問題