2015-10-17 82 views
1

我有一個UITableView與自定義UITableViewCells其中只包含文本字段。我想實現的是tableview可以滾動不僅通過觸摸單元格本身,而且通過觸摸文本字段。應該保留開始編輯的默認文本字段行爲。有沒有什麼辦法來區分整個桌面上的滾動手勢和文本字段上的輕擊手勢?使用UITextField啓用滾動UITableView的單元格

我不想在編輯開始時滾動到特定單元格的方式,而是保留默認的tableview滾動行爲。

問候

+0

滾動應該只是因爲它總是具有相同。你有沒有嘗試過任何東西? –

+0

試過了,沒有按預期工作。觸摸單元格自己滾動tableview,但通過觸摸文本框滾動不起作用。 – Christoph

回答

0

設置你的tableView小號滾動型的delaysContentTouches屬性爲true/YES

Objective-C的

self.tableView.scrollView.delaysContentTouches = YES; 

SWIFT

tableView.scrollView.delaysContentTouches = true 
0

我已經在做了按照子類化TableView和覆蓋th的方式觸摸ShouldCancel方法。該delaysContentTouches和canCancelContentTouches似乎是必要的

class MyTableView : UITableView { 

override init(frame: CGRect, style: UITableViewStyle) { 
    super.init(frame: frame, style: style) 
    self.delaysContentTouches = false 
    self.canCancelContentTouches = true 
} 

override func touchesShouldCancel(in view: UIView) -> Bool { 
    if view is UITextField { 
     return true 
    } 
    return super.touchesShouldCancel(in: view) 
} 

required init?(coder aDecoder: NSCoder) { 
    fatalError("init(coder:) has not been implemented") 
} 

}

相關問題