- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个应用程序,当用户在 TableView 中搜索一个项目时,他们可以点击它并且它旁边会出现一个复选标记。但是,假设当我选择我搜索的第一个项目并单击它然后删除我的搜索时,复选标记保留在第一行但是对于一个完全不同的对象,我搜索,开始(见下图)。
var searchingArray = [Symptoms]()
var filteredArray = [Symptoms]()
var selectedSymptoms = [Symptoms]()
var clicked = [String]()
var searchingUnderWay = false
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if let cell = searchingSymptomsTableView.dequeueReusableCell(withIdentifier: "ExtraSymptoms", for: indexPath) as? ExtraSymptomCell {
let searchingArrays: Symptoms!
if searchingUnderWay {
searchingArrays = self.filteredArray[indexPath.row]
} else {
searchingArrays = self.searchingArray[indexPath.row]
}
cell.updateUI(symptomNames: searchingArrays)
return cell
} else {
return UITableViewCell()
}
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let selectedRow: Symptoms!
let symptomName: String!
let cell : UITableViewCell = tableView.cellForRow(at: indexPath)!
if searchingUnderWay {
selectedRow = filteredArray[indexPath.row]
symptomName = filteredArray[indexPath.row].name as String
if clicked.contains(symptomName) {
cell.accessoryType = .none
let indexNumber = clicked.index(of: symptomName)
clicked.remove(at: indexNumber!)
if let element = selectedSymptoms.index(where: { $0.name == selectedRow.name }) {
selectedSymptoms.remove(at: element)
}
} else {
clicked.append(symptomName)
cell.accessoryType = .checkmark
searchingSymptomsTableView.reloadData()
selectedSymptoms.append(selectedRow)
}
} else {
selectedRow = searchingArray[indexPath.row]
symptomName = searchingArray[indexPath.row].name as String
if clicked.contains(symptomName) {
cell.accessoryType = .none
let indexNumber = clicked.index(of: symptomName)
clicked.remove(at: indexNumber!)
if let element = selectedSymptoms.index(where: { $0.name == selectedRow.name }) {
selectedSymptoms.remove(at: element)
}
} else {
clicked.append(symptomName)
cell.accessoryType = .checkmark
searchingSymptomsTableView.reloadData()
selectedSymptoms.append(selectedRow)
}
print(clicked)
print(selectedSymptoms)
}
}
我希望当您删除搜索时,我使用搜索栏搜索的项目仍然处于选中状态。
非常感谢
最佳答案
欢迎使用 TableViewController 逻辑。看起来真的很奇怪,但它工作正常)您需要覆盖 ExtraSymptomCell 中的 prepareForReuse() 方法。并清除您的单元格包含的所有值,包括 accessoryType
override func prepareForReuse() {
super.prepareForReuse()
accessoryType = .none
}
在你的 tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath):
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if let cell = searchingSymptomsTableView.dequeueReusableCell(withIdentifier: "ExtraSymptoms", for: indexPath) as? ExtraSymptomCell {
let symptomName: String!
let searchingArrays: Symptoms!
if searchingUnderWay {
searchingArrays = self.filteredArray[indexPath.row]
symptomName = filteredArray[indexPath.row].name as String
} else {
searchingArrays = self.searchingArray[indexPath.row]
symptomName = filteredArray[indexPath.row] as String
}
cell.updateUI(symptomNames: searchingArrays)
if clicked.contains(symptomName) {
cell.accessoryType = .checkmark
} else {
cell.accessoryType = .none
}
return cell
} else {
return UITableViewCell()
}
}
关于swift - 使用 SearchBar 时,复选标记与 TableView 中的错误行相关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50026345/
我的 SearchFragment 是另外两个 Fragment 的宿主 Fragment:SearchUsersFragment 和 SearchEventsFragment。我的组织方式是 Tab
tableView.tableHeaderView = UISearchDisplayController.searchBar;并调用 setContentInset: ; 当我滚动表格时,没有绘制
我一直在努力寻找答案,但也许我没有正确地询问谷歌,所以它是这样的:我的 Android 应用程序中有一个搜索 View ,其中有顶部菜单项作为搜索输入,等等。我点击放大镜,然后文本字段变为可编辑的搜索
我已经设置了 UISearchBar 的东西。但我收到错误消息。 Cannot assign value of type '[cellData]' to type '[String]' 这是代码 st
我正在疯狂地尝试让我的 IOS 搜索栏在 Iphone 上工作。我从远程服务器访问数据并填充内容文件。然后我做了一个过滤器,它创建了一个过滤后的内容文件。然后我执行 [self.tableView r
我有一个 tableView,其中填充了一个 String 类型的数组。字符串中的某些单词包含连字符 (-)。我知道我可以过滤一个 tableView 并在需要时让它删除这个字符。是否可以在搜索过程中
我有一个带有 SegmentedControl、UITableView 和 UISearchController 的 UIViewController。 SegmentedControl 位于主视图的
当我像这样将 searchBar 对象调用到 UISearchBar 委托(delegate)方法中时,它工作正常: -(void)searchBarSearchButtonClicked:(UISe
我的 SearchBar 有这段代码可以更改我的收藏 View : extension ProductsCollectionViewController : UISearchControllerDel
只是一些后见之明,让您了解我的问题。我目前正在为我在设备上保存了 GuestList CoreData 的事件编写 iOS 应用程序。 在 viewDidLoad 上,它会获取 coredata 对象
我正在按照本教程了解如何启动和运行 searchBar。 教程: https://www.raywenderlich.com/113772/uisearchcontroller-tutorial 我完
我正在尝试对我的应用实现搜索。以前看了好几个教程,都推荐把Search Bar放到Table Header: self.tableView.tableHeaderView = self.searchC
我的搜索栏有默认的灰色文本,但我希望它是白色文本。我无法弄清楚如何使用 swift 来更改范围栏文本颜色,而且您无法从 Storyboard 中执行此操作。我找到的最接近的是 searchBarOut
我刚刚在我的程序中添加了一个 ui 搜索栏,每次我重新运行该程序时,我都会收到错误消息 -[一般] 与守护程序的连接无效尽管如此,我的应用程序仍能完美运行,而且我似乎无法分辨出哪里出了问题。 有谁知道
我又会显得很傻了,但这总比发疯好!这是我的问题。我有一个 UISearchBar,其中有一个我想隐藏的scopeBar。我这样做: searchBar.showsScopeBar = NO; 我也调用
需要帮助来更正此代码。 我有一个带有餐厅名称和地址的核心数据应用程序,有一个搜索栏,它正在运行。我要添加的是一个 Index 和一个 IndexTitle,如下图(箭头)所示。 非常欢迎任何帮助。提前
我正在使用 SearchDisplayController 并希望将样式或色调应用于 searchBar。 但我注意到 SearchDisplayController 更改了我的 searchBar
我当前使用searchBar,我将左侧图标更改为自定义 UIImageView。当按下按钮时我想将其改回原来的搜索图标。 //my custom search iconBar searchBar.se
我在我的电视应用程序中使用自定义搜索屏幕,我的问题是我无法在启动 fragment 时将焦点设置在 SearchBar View 上。我尝试了以下方法: mSearchBar.setFocusable
我想在输入 edittext 内容的 ListView 行中搜索相关的 Row。 如何在 Listview 中获取行..请给我示例代码.. 谢谢 最佳答案 我假设您想根据您键入的 edittext 值
我是一名优秀的程序员,十分优秀!