2014-09-03 12 views
-2

我希望添加單選按鈕到UITableview。單選按鈕的功能應該類似於我選擇單選按鈕的單選按鈕,該單選按鈕應該被選中,而其他單元中的其他單選按鈕應該被取消選中。它應該是種或者,那只有一個單選按鈕可以選擇。單選按鈕裏面的UITableview不工作

+0

添加關於你的單選按鈕,小區一些代碼 – raki 2014-09-03 11:11:08

回答

3

創建一個int

int selectstr; 
UIButton * button; 


    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
static NSString *CellIdentifier = @"cell"; 

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:nil]; 




if (cell == nil) { 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] ; 

} 



UILabel * title = [[UILabel alloc] initWithFrame:CGRectMake(50.0, 14.0, 215.0, 36.0)]; 
title.backgroundColor = [UIColor clearColor]; 
title.textAlignment = NSTextAlignmentLeft; 
title.textColor=[UIColor blackColor]; 
title.tag=indexPath.row; 
title.text = @"TEST"; 
// title.font = [UIFont fontWithName:@"Arial Hebrew" size:16.0f]; 
title.font = [UIFont fontWithName:@"Palatino-Roman" size:14.0]; 
[cell.contentView addSubview:title]; 




button = [[UIButton alloc] initWithFrame:CGRectMake(20.0f, 20.0f, 46.0f, 30.0f)]; 
button.tag=indexPath.row; 

if (selectstr ==indexPath.row) 
{ 
    [button setImage:[UIImage imageNamed:@"radio_selected.png"] forState:UIControlStateNormal]; 
    cell.backgroundColor=[UIColor colorWithRed:(243.0/255.0) green:(114.0/255.0) blue:(74.0/255.0) alpha:1.0f]; 

} 
else 
{ 
    [button setImage:[UIImage imageNamed:@"radio_unselected.png"] forState:UIControlStateNormal]; 
    cell.backgroundColor=[UIColor clearColor]; 

} 
button.adjustsImageWhenHighlighted=NO; 
[button addTarget:self action:@selector(toggleCheckedMode:) forControlEvents:UIControlEventTouchUpInside]; 
[cell.contentView addSubview:button]; 






return cell; 

} 


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

selectstr=indexPath.row; 
[tableView reloadData]; 


} 


    - (IBAction)toggleCheckedMode:(UIButton*)sender 
    { 

    [button setImage:[UIImage imageNamed:@"radio_selected.png"] forState:UIControlStateNormal]; 

    // here customized for your self 
    selectstr=sender.tag; 
    [tableView reloadData]; 

    } 
+0

試試這個,這是工作正常,我 – 2014-09-03 11:12:40

+0

感謝您的答覆。是的,它在didselect中運行良好。但我在單擊單選按鈕上尋找相同的功能。 – 2014-09-03 11:38:49

+0

好的,謝謝... :) – 2014-09-03 11:44:26

0
Write this code into 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

NSIndexPath *selectedIndex; 
    UIButton *radioButton; 

radioButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    radioButton.frame = CGRectMake(30,23,24,24); 
    // [radioButton setTitle:@"" forState:UIControlStateNormal]; 
    radioButton.tag = 8888; 
    [cell.contentView addSubview:radioButton]; 
    radioButton = (UIButton *)[cell.contentView viewWithTag:8888]; 
    if (selectedIndex && selectedIndex.row == indexPath.row) 
    { 
     [radioButton setBackgroundImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateNormal]; 
    } 
    else 
    { 
     [radioButton setBackgroundImage:[UIImage imageNamed:@"unchecked.png"] forState:UIControlStateNormal]; 
    } 

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    selectedIndex =indexPath; 
    [self.userTabelView reloadData]; 
}