2017-10-09 28 views
2

我有一個UIView 3嵌套的UIViews。它們的總寬度是屏幕的300%。 (各100%)。 我正在改變AutoLayout優先級,以便在屏幕上顯示所需的內容,並使用NavBar中的按鈕點擊其他屏幕。UITableView項目被突出顯示,然後取消選擇 - Swift

| uiview1 | | uiview2 | | uiview3 |

uiview3有一個UITableView。它會填充,完全滾動,但在點擊某個項目時,該項目會突出顯示一秒,然後釋放。函數'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來組織和顯示這三個視圖控制器? –

回答

0

不是一個解決辦法,但備用。事情以另一種方式解決。正如您在問題附帶的Demo GIF中看到的那樣,單元格正在正確突出顯示。所以我添加委託方法didHighlightRowAt,它的工作就像一個魅力。

相關問題