私はこの質問を見ました:
しかし、動的ページを扱っているようでした。私は本当に自分のアプリの設定ページを作成しようとしているだけで、テーブル内のいくつかのセル (すべてではない) では、テーブル セルのスイッチが必要です。どうすればこれを行うことができますか?
私はこの質問を見ました:
しかし、動的ページを扱っているようでした。私は本当に自分のアプリの設定ページを作成しようとしているだけで、テーブル内のいくつかのセル (すべてではない) では、テーブル セルのスイッチが必要です。どうすればこれを行うことができますか?
Interface Builder での動作は次のとおりです。コードは必要ありません。
UISwitch を View Controller にドラッグします。メインビューの外にある必要があります。他のものと一緒にくつろいでいるだけです。
このスイッチが必要なテーブル ビュー セルを Ctrl キーを押しながらクリックし、新しいスイッチにドラッグします。1を参照してください。
スイッチをテーブル ビュー セルの accessoriesView アウトレットに接続します。2を参照してください。
アプリを実行し、スイッチが表に表示されるのを確認します - 完了です!
注: 奇妙なことに、スイッチは Interface builder に表示されません。ただし、アプリを実行すると表示されます
インスタンス変数にも接続したい場合 (たとえば、後でその "on" プロパティを読み取ることができるようにするため) は、他のビュー3、4と同じようにアウトレットに接続します。
PS: UISwitch のオン/オフ状態は、「選択」ではなく「オン」プロパティにあることに注意してください。ちょっと紛らわしいので追加します。
PPS: 特大の画像で申し訳ありません。私は Retina 画面を使用しています。
配置したセルに UISwitch をドラッグするだけです。その後、アシスタント エディター (素晴らしい) を使用して、親クラスに接続できます。1 つのヒントをお伝えします。外観が似ている複数のセルを計画している場合は、セクションの最初のセルを作成して適切にレイアウトします。その後、そのセクションの行数を増やすことができ、IB がコピーを作成します。あなたのための既存の行の。
私はこの場合のために関数を作成し、それは私にとって良い仕事です..試してみてください.最初にセルの作成で、たとえば、追加したい行を確認できますUISwitch
.
if(indexPath.row == 0)
[self createOnOffView:cell withTitle:@"Somthing" withTag:1001 defaultVal:YES];
そして機能は次のとおりです。
- (void) createOnOffView:(UITableViewCell*) cell withTitle:(NSString*) title withTag:(int)tag defaultVal:(BOOL) defaultVal
{
CGRect rect;
cell.textLabel.text = title;
cell.selectionStyle = UITableViewCellSelectionStyleNone;
rect = cell.contentView.frame;
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
rect.origin.x = cell.frame.size.width - 20;
else
rect.origin.x = rect.size.width/2 +35;
rect.origin.y = rect.size.height/2 - 15;
rect.size.width = 60;
UISwitch *switchView = [[UISwitch alloc] initWithFrame:rect];
[cell.contentView addSubview:switchView];
[switchView addTarget:self action:@selector(didChangeSwitch:) forControlEvents:UIControlEventValueChanged];
switchView.tag = tag;
[switchView setOn:defaultVal];
[switchView release];
}
そして、値がスイッチである場合、このメソッドが起動されます..そのため、タグに基づいてどのスイッチかを知ることができます
- (void) didChangeSwitch:(UISwitch*)switchView
{
if(switchView.tag == 1001)
{
//Do Somthing
}
if(switchView.tag == 1002)
{
//Do Somthing
}
}
これが役立つことを願っています:)
リンク先の質問とまったく同じ方法で行います。「動的」テーブルなどというものはありません。テーブルにはモデルが表示されるだけです。モデルは動的かもしれませんが、テーブルビューはそうではありません。いずれにせよ、その質問に対する答えに従うと、テーブルビューにスイッチが表示されます。