使用UITextField为UITableView单元格启用滚动

时间:2015-10-17 08:21:09

标签: ios uitableview

我有UITableView个自定义UITableViewCells,其中只包含一个文本字段。我想要实现的是,tableview不仅可以通过触摸单元格本身而且可以通过触摸文本字段来滚动。应保留开始编辑的默认文本字段行为。有没有办法区分整个tableview上的滚动手势和文本字段上的点击手势?

我不想在编辑开始时滚动到特定单元格,而是保留默认的tableview滚动行为。

此致

2 个答案:

答案 0 :(得分:0)

delaysContentTouches的滚动视图上的tableView属性设置为true / YES

目标-C

self.tableView.scrollView.delaysContentTouches = YES;

SWIFT

tableView.scrollView.delaysContentTouches = true

答案 1 :(得分:0)

我已经通过子类化TableView并覆盖touchesShouldCancel方法以下列方式完成了它。 delayedContentTouches和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")
}

}