2015-10-17 25 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") 
} 

}

相关问题