3つの入れ子になったUIViewを持つUIViewがあります。それらの合計幅は画面の300%です。 (それぞれ100%)。 AutoLayoutの優先順位を変更して、NavBarからボタンをクリックすると、必要なものを画面に表示し、他のものを画面外に表示します。UITableViewアイテムがハイライトされてから選択解除されます - Swift
| uiview1 | | uiview2 | | uiview3 |
uiview3にはUITableViewがあります。それは完全にスクロールしますが、項目をタップすると、項目が2秒間強調表示されてから解放されます。関数 'didSelectRowAt'が呼び出されていません。
このVCに登録されている他のすべてのジェスチャーを無効にしようとしました。クリックは検出されますが、保持されず、すぐに選択解除されます。
//globally in VC
@IBOutlet weak var salamsTable: UITableView!
//in viewDidLoad
self.salamsTable.delegate = self
self.salamsTable.dataSource = self
//delegate functions
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
{
print (indexPath.row) // this never gets called
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return self.allSalam.count //works perfectly
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
var cell = self.msgsTable.dequeueReusableCell(withIdentifier: "messages") as! MessageCell
return cell // works perfectly
}
ビジュアルデモ:
コードを投稿することはできますか? –
質問をする際に関連コードを投稿してください。カップルには問題が発生する多くの理由がありますが、コードを評価することなく、可能性を絞り込むことは難しいです。 – PeejWeej
私の推測では、自動レイアウトの変更と関係があります。 UINavigationControllerまたはUIPageViewControllerを使用してこれらの3つのView Controllerを整理して表示したくない理由がありますか? –