、私はどうなることは事前にレイアウトされているいずれかのストーリーボードに2つのラジオボタンを含むセル( .xibファイルでも行うことができます)。次に、 "LanguageSkillSelectionTableViewCell"などの識別子を設定します。その後、テーブルビューに新しいデータセットをロードしようとしているときに、コールバックを介してテーブルビューのセルの表示を管理できますcellForRowAtIndexPath:
たとえば、そのLanguageSkillSelectionTableViewCellを常にロードする最初は、次にindexPath.row == 0に設定します。それ以外の場合は、データリストの内容を他の行に設定します。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *tableCell;
if(_loadedNewData)
{
if(indexPath.row < dataList.count && indexPath.row > 0)
{
tableCell = (DataTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"DataTableViewCell"];
//set attributes of the tableCell
}
else
{
tableCell = (LanguageSkillSelectionTablViewCell *)[tableView dequeueReusableCellWithIdentifier:@"LanguageSkillSelectionTableViewCell"];
//set attributes of the tableCell
}
}
else
{
//load in default order
}
return tableCell;
}
このコールバックの下にあるセルの配列とプレゼンテーションで再生できます。
第2の問題は、ユーザーが選択した選択項目のフラグまたは状態をクラス内のグローバル変数に格納することです。その後、セルがリロードされるたびに、そのセルのラジオボタンの選択状態を更新するメソッドを設定することによって、そのセルの選択状態を更新することができます。例えば
:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *tableCell;
if(_loadedNewData)
{
if(indexPath.row < dataList.count && indexPath.row > 0)
{
tableCell = (DataTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"DataTableViewCell"];
//set attributes of the tableCell
}
else
{
tableCell = (LanguageSkillSelectionTablViewCell *)[tableView dequeueReusableCellWithIdentifier:@"LanguageSkillSelectionTableViewCell"];
//set attributes of the tableCell
[(LanguageSkillSelectionTablViewCell *)tableCell setLanguageSelectionState:canReadWrite];
}
}
else
{
//load in default order
}
return tableCell;
}
:ユーザーが英語を選択した場合は
、それは次のようになります