簡體   English   中英

如何在表格視圖中創建單選按鈕

[英]How to create a radio button in table view

我在表格視圖單元格中有一個單選按鈕。 這是我的單選按鈕

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"myCell"];
if(cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"myCell"];

    cell.selectionStyle = UITableViewCellSelectionStyleNone;

 radiobtn = [UIButton buttonWithType:UIButtonTypeCustom];
    radiobtn.frame = CGRectMake(30, 0, 15, 14.5);

    [radiobtn setImage:[UIImage imageNamed:@"unselect"] forState:UIControlStateNormal];
    [radiobtn setImage:[UIImage imageNamed:@"select"] forState:UIControlStateSelected];
    [radiobtn addTarget:self action:@selector(radiobtn:) forControlEvents:UIControlEventTouchUpInside];
    cell.accessoryView = radiobtn;
}
cell.textLabel.text = [array objectAtIndex:indexPath.row];
 return cell;

}

-(void)radiobtn:(id)sender

{


 if([sender isSelected])

{
[sender setSelected:NO];
}  else
[sender setSelected:YES];
} }

在上述編碼中,單選按鈕未更改為選定狀態。 請幫我編碼。

創建按鈕時,將圖像設置為選擇狀態和未選擇狀態。

radiobtn = [UIButton buttonWithType:UIButtonTypeCustom];
radiobtn.frame = CGRectMake(30, 0, 15, 14.5);
[radiobtn setImage:[UIImage imageNamed:@"unselect"]] forState:UIControlStateNormal];
[radiobtn setImage:[UIImage imageNamed:@"select"]] forState:UIControlStateSelected];
 radiobtn.tag=1;
[radiobtn addTarget:self action:@selector(radiobtn:) forControlEvents:UIControlEventTouchUpInside];
cell.accessoryView = radiobtn;

單擊按鈕時,只需更改所選狀態。

-(void)radiobtn:(UIButton *)sender
{
    if([sender isSelected])
    {
        [sender setSelected:NO];
    }

     else
     {
         [sender setSelected:YES];
      }
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"myCell"];
if(cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"myCell"];

}

cell.selectionStyle = UITableViewCellSelectionStyleNone;
UIButton *newRadioButton;
newRadioButton = [UIButton buttonWithType:UIButtonTypeCustom];
newRadioButton.frame = CGRectMake(30, 0, 15, 14.5);

[newRadioButton setImage:[UIImage imageNamed:@"unselect"] forState:UIControlStateNormal];
[newRadioButton setImage:[UIImage imageNamed:@"select"] forState:UIControlStateSelected];
[newRadioButton addTarget:self action:@selector(radiobtn:) forControlEvents:UIControlEventTouchUpInside];
cell.accessoryView = newRadioButton;
cell.textLabel.text = [array objectAtIndex:indexPath.row];
return cell;

}
  1. 設置控件事件UIControlEventValueChanged的目標操作。
  2. 在操作發生之前,將圖像設置為特定狀態(在cellForRowAtIndexPath方法中)。 通過使用setImage:forState:您實際上並沒有更改當前的控件圖像,您只是說控件針對該狀態發生的某些控件狀態使用了精確的圖像。 如果selected狀態更合適,請不要使用highlighted狀態。 嘗試通過[radiobtn setSelected:YES][radiobtn setSelected:!radiobtn.isSelected]以編程方式更改狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM