2017-10-09 21 views
2

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 
} 

salamsTable is the subject UITableView

ビジュアルデモ:

enter image description here

+1

コードを投稿することはできますか? –

+1

質問をする際に関連コードを投稿してください。カップルには問題が発生する多くの理由がありますが、コードを評価することなく、可能性を絞り込むことは難しいです。 – PeejWeej

+0

私の推測では、自動レイアウトの変更と関係があります。 UINavigationControllerまたはUIPageViewControllerを使用してこれらの3つのView Controllerを整理して表示したくない理由がありますか? –

答えて

0

ないソリューションが、代替。物事は別の方法でうまくいった。質問に添付されているデモGIFでわかるように、セルは適切に強調表示されています。だから私はdidHighlightRowAtデリゲートメソッドを追加し、それは魅力のように働いた。

関連する問題