- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用了一个显示时区选项的表格。我使用复选标记来显示当前选择的是哪一个。创建表后,我选中保存为用户时区的单元格。
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "cellData")
switch indexPath.row {
case 0: cell.textLabel?.text = "Eastern"
case 1: cell.textLabel?.text = "Central"
case 2: cell.textLabel?.text = "Mountain"
case 3: cell.textLabel?.text = "Mountain (No DST)"
case 4: cell.textLabel?.text = "Pacific"
default: cell.textLabel?.text = ""
}
cell.selectionStyle = UITableViewCellSelectionStyle.None
if(cell.textLabel?.text == keychain.get("timezone")) {
cell.accessoryType = UITableViewCellAccessoryType.Checkmark
}
return cell
}
然后,当用户选择新时区时,我使用这些函数来更改复选标记。
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
tableView.cellForRowAtIndexPath(indexPath)!.accessoryType = UITableViewCellAccessoryType.Checkmark
}
override func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {
tableView.cellForRowAtIndexPath(indexPath)!.accessoryType = UITableViewCellAccessoryType.None
}
但是,当我预设复选标记时,当我选择新时区时,它不会被删除。仅当我首先选择它然后选择一个新的时它才会起作用。取消选择时原始单元格不受影响是否有原因?
最佳答案
您的原始单元格未被取消选择的原因是它一开始就没有被选择。启用复选标记附件不会选择单元格。
设置起来有点麻烦,但是实现此功能的一种方法是存储对需要选择的单元格的引用,并且当 View 将出现时,手动选择它。然后,取消选择就会起作用。
添加一个类变量来记住应选择的单元格
varinitialSelectedPath: NSIndexPath?
在 cellForRowAtIndexPath
中设置变量(就我个人而言,由于实际单元格选择的执行方式,我会在类的其他位置进行此设置,但这足以演示 < em>一个解决方案。
...
if (cell.textLabel?.text == keychain.get("timezone")) {
cell.accessoryType = UITableViewCellAccessoryType.Checkmark
initiallySelectedPath = indexPath
}
...
然后,在您的viewWillAppear
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
if let indexPath = initiallySelectedPath {
// I force unwrap (sorry!) my tableView, you'll need to change this to however you reference yours
tableView!.selectRowAtIndexPath(indexPath, animated: false, scrollPosition: UITableViewScrollPosition.None)
}
}
现在,您的原始单元格应该在第一次点击不同的单元格时取消选择。
关于Swift didDeselectRowAtIndexPath 不适用于预设单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35109645/
didSelectRowAtIndexPath 被调用,但 didDeselectRowAtIndexPath 不叫。我不知道为什么。我在网上搜索。很多类似的问题,但我没有找到答案。 这是我的桌面 V
我使用了一个显示时区选项的表格。我使用复选标记来显示当前选择的是哪一个。创建表后,我选中保存为用户时区的单元格。 override func tableView(tableView: UITableV
我在弹出窗口的 ScrollView 中有一个表格 View 。当显示 View 时,tableview 中的底部单元格对用户不可见。如果我选择所有单元格然后取消选择第一个单元格,那么 View 外的
我在 UIViewController 中有一个 UITableView 并且 UIViewController 是 的 delegate UITableView。在我的表格 View 中,我正在输出
这个问题在这里已经有了答案: Table view didSelectRowAtIndexPath, only works after selecting second click (1 个回答)
我已经在包含多项选择的 UITableView 中实现了didDeselectRowAtIndexPath 方法。 出于某种原因,didDeselectRowAtIndexPath 未被委托(dele
我正在使用 didDeselectRowAtIndexPath 浏览不同的 Storyboard,例如: func tableView(tableView: UITableView, didSelec
我在 UITableView 上手动调用方法 [tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableV
我正在使用带复选框的 UITableView。在我的 cellForRowAtIndexPath 方法中,我设置了如下选定的几个单元格, UITableViewCell *cell = [tableV
我试图改变我已添加到 guideViewCell 的 UIView 的颜色,而不是默认的 selectionStyle(其中背景 View 会更改颜色)。但是,当取消选择单元格或按下另一个单元格时,它
我有一个 UITableView,当 isEditing=YES 显示带有标准 iOS 选择圆形“复选框”的单元格(见下图)。其中一些已通过 CoreData“添加书签”。 tableView:wil
这个问题在这里已经有了答案: When I select a UITableViewCell, my view controller label is an action behind (1 个回答
我是 iOS 新手,在选择和取消选择表格 View 单元格时遇到问题。对于取消选择,我使用了 didDeSelectRowAtIndexPath 但它没有被调用 我的代码是这样的 - (UITable
如何使用 tableView:didDeselectRowAtIndexPath: 触发 textFieldShouldBeginEditing: ? 或者我还有什么其他选择?我确实考虑过使用 tab
我的 TableView 在取消选择而不是 onSelect 时返回行,所以当我选择第一个单元格时,didDeselectRowAtIndexPath 不返回任何内容,但是当我选择其他单元格时,我得到
在我的应用程序中,我使用 UITableview。在该委托(delegate)方法中 didselectrow 如果我做了任何操作就不会发生。 例如我在表格 View 中有 3 行 如果我选择 1 行
我正在使用 Split View Controller 并希望将多个 TableView 添加到主视图 Controller 。 因此,我可以利用(我相信)您只能从 UITableViewContro
这是代码: func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { l
我有一个 UITableView有四个单元格,处于单选模式。首次加载 View 时,我使用 -selectRowAtIndexPath:animated:scrollPosition: 以编程方式选择
我有一个带有自定义单元格的 TableView 。选择一行后,会发生一些事情。一旦取消选择该行,就会发生其他一些事情。 一切正常,但有一个错误我无法修复。我可以点击我想要的每一行并且“什么都没有”发生
我是一名优秀的程序员,十分优秀!