- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到的问题是;
我在应用程序中使用 TableView ,并且希望在每个选定行旁边生成复选标记。但除了页面向下滚动的部分中的行之外,其他部分的行中也会生成复选标记。但是,当我打印单击的单元格时,结果是正确的。
这是我创建复选标记的代码:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath as IndexPath, animated: true)
let row = indexPath.row
let indexpath = NSIndexPath(row: indexPath.row, section: indexPath.section)
let currentCell = tableView.cellForRow(at: indexpath as IndexPath) as! UITableViewCell
currentCell.backgroundColor = UIColor.gray
tableView.cellForRow(at: indexPath)?.accessoryType = .checkmark
for organ in self.dataSource.organs {
if(organ.name == organName) {
for sympton in organ.symptonList {
if (sympton.name == self.symptonName ){
self.symptonList.append(sympton.questionList[indexPath.section].question + " " + sympton.questionList[indexPath.section].answerList[row].lowercased())
print("*******")
print(sympton.questionList[indexPath.section].question + " " + sympton.questionList[indexPath.section].answerList[row].lowercased())
}
}
}
}
}
我的 cellForRowAt 方法:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "LabelCell", for: indexPath as IndexPath)
let row = indexPath.row
for organ in self.dataSource.organs {
if(organ.name == organName) {
for sympton in organ.symptonList {
if(sympton.name == symptonName) {
cell.textLabel?.text = sympton.questionList[indexPath.section].answerList[row]
}
}
}
}
return cell
}
如果您有任何建议,这对我非常有用。
最佳答案
首先在 View Controller 中添加 IndexPaths 数组:
var selectedIndexes: [IndexPath] = [IndexPath]()
然后你的 didSelectRowAtIndexPath:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath as IndexPath, animated: true)
if let index = selectedIndexes.index(where: {$0.row == indexPath.row && $0.section == indexPath.section}){
selectedIndexes.remove(at: index)
}
else {
self.selectedIndexes.append(indexPath)
}
for organ in self.dataSource.organs {
if(organ.name == organName) {
for sympton in organ.symptonList {
if (sympton.name == self.symptonName ){
self.symptonList.append(sympton.questionList[indexPath.section].question + " " + sympton.questionList[indexPath.section].answerList[row].lowercased())
print("*******")
print(sympton.questionList[indexPath.section].question + " " + sympton.questionList[indexPath.section].answerList[row].lowercased())
}
}
}
}
}
然后,在您的 cellForRowAtIndexPath
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "LabelCell", for: indexPath as IndexPath)
let row = indexPath.row
for organ in self.dataSource.organs {
if(organ.name == organName) {
for sympton in organ.symptonList {
if(sympton.name == symptonName) {
cell.textLabel?.text = sympton.questionList[indexPath.section].answerList[row]
}
}
}
}
if(self.selectedIndexes.contains(where: {$0.row == indexPath.row && $0.section == indexPath.section})) {
cell.backgroundColor = UIColor.gray
cell.accessoryType = .checkmark
}
else {
cell.backgroundColor = UIColor.white
cell.accessoryType = .none
}
return cell
}
关于ios - UITableView 仅选中行的复选标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50573964/
我想在 scilab 中绘制 limacon,我有这个方程需要处理: 我知道r>0和l>0 当我编译以下代码时,我在第 5 行收到此错误: Inconsistent row/column dimens
我试图更好地了解行和行集在 PeopleCode 中的用途?我读完了PeopleBooks,但仍然觉得我没有很好的理解。我希望对这些与应用程序引擎程序相关的内容有更多的了解。也许通过一个例子可能会有所
我有 4 列的行,每列都有一个标题和一些文本。大多数列都有相似数量的文本,将其列中的按钮向下按以匹配其余列。但是,一列的文本较少,并且没有将按钮向下推得足够远。 有没有办法将按钮对齐到行的底部?我想实
我有这个模型 summary = models.TextField() 但我只想有 4 行和 15 列。 此外,如果我这样做,我是否需要重新安装数据库。 最佳答案 TextField
我想在 iPhone 中创建 SSL 服务器套接字的客户端,但我在 iPhone 中找不到任何 API。我有带密码的有效证书文件 最佳答案 你看过OpenSSL了吗? ? 关于iphone - iPh
For Each cell In sheets(1).Range("A50:A606") For Each cell2 In sheets(2).Range("EX2:ACB2") cell2.
这是我的矩阵 [,1] [,2] M -1 -5 T 8 -4 W -3 9 Th
我有一个全局char *在运行时,重新声明为指向声明为 way 的二维数组的指针。 : char (*A)[N][M] = malloc(sizeof(char[BUF_16][N][M])); 然后
我是一名优秀的程序员,十分优秀!