2017-07-12 13 views
0

ユーザーが行を選択し、チェックマークが表示されるtableViewがあります。これらの行は配列に配置されます。どのように特定の行を選択するのですか?ここで私が見つけたとしようとしたものですが、それはうまくいきませんでした:ロードスウィフトテーブルの特定の行を選択してください。

let rowToSelect:NSIndexPath = NSIndexPath(row: 1, section: 0); 

self.userTableView.selectRow(at: rowToSelect as IndexPath, animated: true, scrollPosition: .none) 
+0

「特定の行を選択する」という正確な意味は?前に選択した行のチェックマークを選択しますか? – valcanaia

+0

私は行が選択されていると思うが、 '.none'以外のものを渡して新しく選択した行にスクロールさせるためには、テーブルビューを必要とする。チェック:https://developer.apple.com/documentation/uikit/uitableviewscrollposition –

+0

@valcanaiaはい、すべてのインデックスがグローバル変数に格納されていますが、それが意味をなさない場合はセル選択をハードコードしたい –

答えて

1

私はあなたがあなたには、いくつかの変数を持っている選択したインデックスのチェックマークを「チェック」したいと考えています。これはあなたが好きあなたのtableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell方法でこれを行うことができます何をしたいの場合:

myCell.checked = checkedIndexes[indexPath.row] ?? false 

私は、あなたがあなたのcheckedIndexes変数に値を持っている場合、あなたがそれを設定するように、あなたはchecked: Bool変数とカスタムセルを持っていると仮定していますそれ以外の場合はfalseと設定します。

警告:falseの値は、セルの再利用のために重要です。

これは単なる提案に過ぎず、好きな方法でやることができます。

selectRow(at indexPath: IndexPath?, animated: Bool, scrollPosition: UITableViewScrollPosition)メソッドは行を選択するだけで、ロジック関連のアクションは実行されません。これが機能するには、myCell.checked = checkedIndexes[indexPath.row] ?? falseより前に提案されたコードでUITableViewDelegateからtableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)を実装する必要があります。

関連する問題