当我轻轻点击它们时,我的按钮在单元格内部没有突出显示。我不得不点击很长时间才能看到按钮的敲击状态。
所以我这样做是为了在visionDidLoad()中将delaysContentTouches设置为false(我没有管理其他方法):
for index in tableView.subviews {
if (index.isKindOfClass(UIScrollView)) {
let scrollViewFound = index as! UIScrollView
scrollViewFound.delegate = self
scrollViewFound.delaysContentTouches = false
scrollViewFound.canCancelContentTouches = true
scrollViewFound.scrollEnabled = true
}
}
这样按钮正确突出显示,但我不能向上或向下滚动表格,除非我开始从其中一个空单元格中拖动 - >空单元格中的userInteractionEnable = false
能够突出显示按钮,还能滚动表格。 是否可以同时拥有可滚动视图和突出显示的按钮?
我试过调用这个函数:
func touchesShouldCancelInContentView(view: UIView) -> Bool {
print("touchesShouldCancelInContentView happening---------")
return true
}
永远不会被召唤。我试过覆盖但它给出了一个错误:
Method不会覆盖其超类
中的任何方法
这很奇怪,因为UITableViewController继承自UIScrollView。我也尝试将UIScrollViewDelegate添加到类定义中,但当然它会产生另一个错误,这是多余的。
类的声明如下:
class Settings: UITableViewController, UITextFieldDelegate { ...
tableView 由静态单元格
组成细胞:
也许有必要说当用户点击任何单元格
didSelectRowAtIndexPath
时它会 调用一个函数来关闭键盘。
答案 0 :(得分:1)
你试图将错误的类子类化,这就是为什么它不起作用。您必须继承<select ng-model="selectedDevice"
ng-options="item as key for (key,item) in devices['Block Devices'] ">
<option value="">Select Device</option>
</select>
类本身,而不是UITableView
。
你能试试以下吗?
对TableView类进行子类化以覆盖UITableViewController
函数。
touchesShouldCancelInContentView
在class UIDraggableTableView: UITableView {
override func touchesShouldCancelInContentView(view: UIView) -> Bool {
if (view.isKindOfClass(UIButton)) {
return true
}
return super.touchesShouldCancelInContentView(view)
}
}
课程中,当TableViewController
被调用时,请在viewDidLoad()
之后追加以下内容:
super.viewDidLoad()
这可以解决您的问题。
此答案的部分内容取自this StackOverflow post。