2017-05-29 27 views
0

我放在TableView一個ScrollView內有多個Views。這點是這樣的,當用戶向右滾動時,下一個view將出現不同的table。這是行得通的,但是,我現在無法刪除表格內的項目,因爲當我向右滑動時,它只會引導我進入下一個視圖。有什麼辦法可以解決這個問題嗎?我已經執行func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath)函數。 謝謝!放在表視圖滾動視圖裏面,現在我不能使用刷卡刪除

+0

發佈您的佈局/ Java類文件,以便我們可以看到發生了什麼。 – scb998

+0

Java類文件?錯誤的平臺,哥們。 – NRitH

回答

0

UIScrollView有一個名爲 touchesShouldCancel(in view: UIView) -> Bool

方法,該方法取消屬於滾動視圖的內容視圖中的觸摸事件。

由於表視圖是UIView子類,你可以在那裏通過。

這應該阻止任何滾動視圖觸摸事件,並允許您與之前一樣的表視圖進行交互。

編輯: 假設你正在使用的故事板,創建你的故事板的插座,您的視圖控制器

@IBOutlet weak var scrollView: UIScrollView! 
@IBOutlet weak var tableView: UITableView! 

然後你就可以在你的viewDidLoad

scrollView.touchesShouldCancel(in: tableView) 

添加tableView的方法從文檔:

The default returned value is true if view is not a UIControl object; otherwise, it returns false.

+0

我實現這樣的'FUNC touchesShouldCancel的方法(在視圖:UITableView中) - >布爾{ 還真 }「,但它仍然無法正常工作。我應該如何實現它? –

+0

確保您有一個您正在使用的表格視圖的實例。如果您正在使用故事板,則可以爲您的控制器創建tableView的出口。 調用'UITableView'將不起作用。 – Simon

+0

是的,我確實有我的tableView的插座。仍然不起作用。我需要任何特定的子類來使用'touchesShouldCancel(在視圖:UIView) - > Bool?' –